How to fix 0.3+0.6=0.89999999999 in Javascript?
本问题已经有最佳答案,请猛点这里访问。
当添加两个浮点值时,我将得到如下结果:
1 | 0.3+0.6 = 0.89999999999 |
我知道发生了什么事。在c中,我们可以使用十进制,但在javascript中,如何修复它?
数学实用程序
1 2 3 4 5 6 7 | MathUtils = { roundToPrecision: function(subject, precision) { return +((+subject).toFixed(precision)); } }; console.log(MathUtils.roundToPrecision(0.3 + 0.6, 1)) // 0.9; |
号
使用BigNumber库。例如,math.js支持bignumbers(由decimal.js提供支持)。
使用math.js的表达式分析器,可以使用bignumbers键入自然表达式:
1 2 3 4 5 | // configure math.js to use bignumbers math.config({number: 'bignumber'}); // evaluate an expression math.eval('0.3 + 0.6'); // returns a BigNumber with value 0.9 |
本质上是一样的,但javascript没有内置类似于