回复 第10楼 的 nntx:是浮点数的精度问题。如果结果的绝对值小于.Machine$double.eps就可以认为是等于0了。
<br />
> f <- function(x) x^2<br />
> a <- optimize(f, lower = -1, upper = 1)<br />
><br />
> abs(unlist(a)) < .Machine$double.eps<br />
minimum objective<br />
TRUE TRUE<br />
> unlist(a) == 0<br />
minimum objective<br />
FALSE FALSE<br />
</p>
如果你一定想让结果等于0,可以把tol设定的更小一些,例如
<br />
> a <- optimize(f, lower = -1, upper = 1,<br />
+ tol = .Machine$double.eps ^ 3)<br />
><br />
> unlist(a) == 0<br />
minimum objective<br />
TRUE TRUE<br />
</p>