我在R中有一个近似(圆形)错误问题

时间:2018-08-12 09:32:34

标签: decimal rounding approximation

我有一个简单的错误,是来自R中的十进制数字的近似值。我猜这是由于内存中的保留字节或类似的东西引起的。

在执行我的R代码时,我将这些变量的中间值打印出来,只是为了检查错误的出处:

prop_individues_stades[S] = 4.626294e-05
repart_pop_total = 1
pb1 = 0.9999537
pb2 = 1
frac = 4.626294e-05

奇怪的是frac是这样计算的:

frac = repart_pop_total * (pb2 - pb1)

如果我直接在R中签入,我会得到:

frac = 4.63e-05

我知道它来自小数点后一位,但是当我得到prop_individues_stades[S] = 4.626294e-05frac = 4.626294e-05时,下一步是prop_individues_stades[S] - frac,那么我得到零,程序停止。

没有近似误差的理想值应该是:

prop_individues_stades[S] = 4.6262936325314E-5
repart_pop_total = 1
pb1 = 0.99995373706367
pb2 = 1
frac = 4.6262936325259E-5

然后是prop_individues_stades[S] - frac = 5.5511151231258E-17,程序将继续...

我尝试使用功能round(frac, ...),但没有帮助。

有时候,小的价值使事情变得重要:)谢谢您的所有想法/解决方案/建议...

0 个答案:

没有答案