为什么 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用于计算,是标准的
我对 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用于计算,是标准的