首页 > 解决方案 > 我在 R 中有一个近似(圆形)错误问题

问题描述

我有一些来自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-05andfrac = 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, ...),但没有帮助。

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

标签: decimalroundingapproximation

解决方案


推荐阅读