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

Solution to the infamous 64-bit floating point math error in JavaScript

本问题已经有最佳答案,请猛点这里访问。

由于64位浮点表示,是否有解决javascript中臭名昭著的浮点数学错误的方法?浮点运算是否中断?

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

例如:0.1+0.2=30亿而预期是0.1+0.2=0.3

我想知道像Paypal这样的金融组织如何仍然有JavaScript应用程序。


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

了解值的内部表示形式与如何向最终用户呈现该值之间的区别是很重要的。


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