我正在努力解决问题。浮点精度,并找不到解决方案。管理浮点精度
下面是一个简单的例子:
aa<-c(99.93029, 0.0697122)
aa
[1] 99.9302900 0.0697122
aa[1]
99.93029
print(aa[1],digits=20)
99.930289999999999
这样看来,在存储所述向量,R转换的数字的东西具有稍微不同的内部表示(是的,我已阅读圈1的“ R地狱“和类似的材料)。
如何强制R将输入值完全“按原样”存储,而无需修改?
就我而言,我的问题是,值以这样的方式,小的错误很迅速成长处理:
aa[2]/(100-aa[1])*100
[1] 100.0032 ## Should be 100, of course !
print(aa[2]/(100-aa[1])*100,digits=20)
[1] 100.00315593171625
所以,我需要找到一个办法让我正常化的权利。
感谢
PS-有在本网站和其他地方的许多问题,在讨论的精度明显的损失,即显示不正确的(但存储右)号的问题。在这里,例如: How to stop read.table from rounding numbers with different degrees of precision in R? 这是一个不同的问题,因为号码存储不正确(但显示正确)。
(R版本3.2.1(2015年6月18日),赢得7 64位系统)
我相信你的问题是不是读表,但关于河流的数值精度https://stackoverflow.com/questions/24847918/extreme-numerical-values-in-floating-point-precision-in-r –