解决JavaScript中臭名昭着的64位浮点数学错误

时间:2016-12-07 12:33:35

标签: javascript

由于64位浮点表示,是否有解决JavaScript中臭名昭着的浮点数学错误的问题? Is floating point math broken?

我试图制作基于JavaScript的数学密集型应用程序,但是,由于JavaScript中的这个错误,它总是导致输出不准确。

例如:     0.1 + 0.2 = 0.30000000000000004     而预期的是     0.1 + 0.2 = 0.3

我想知道金融机构(PayPal)是如何继续使用javascript应用程序的。

2 个答案:

答案 0 :(得分:5)

"解决方案" (非)错误是忽略它,并确保使用适当的函数,即toFixed(n),以显示所需小数位数的数字。

了解值的内部表示与如何向最终用户提供值之间的区别非常重要。

答案 1 :(得分:2)

您可以使用https://github.com/ekg/fraction.js库作为中间值,并将最终结果转换回十进制值以最大限度地减少错误。