为什么 R 像它那样对自然对数进行舍入?

Why does R round natural logarithms as it does?

我对 R 的差异感到困惑:

log(0.0001)/0.0001
-92103.4

并且,例如,Google计算器渲染:

 ln(0.0001)/0.0001
 -92103.4037198

为什么四舍五入如此不同?

提高 显示 精度,例如:

options(digits=20)

修复了 "problem"

> log(0.0001)/0.0001
[1] -92103.4
> options(digits=20)
> log(0.0001)/0.0001
[1] -92103.403719761816319

注意内部精度总是很高的,可以用.Machine变量查看:

> .Machine
#Many other details here
$double.digits
[1] 53

以上表示本机有53位mantissa, which indicates that double-precision floating-point用于计算,是标准的