添加两个浮点值时,我会得到类似的内容:
0.3+0.6 = 0.89999999999
我知道发生了什么。在C#中我们可以使用十进制代替,但在Javascript中,如何修复它?
答案 0 :(得分:1)
MathUtils = {
roundToPrecision: function(subject, precision) {
return +((+subject).toFixed(precision));
}
};
console.log(MathUtils.roundToPrecision(0.3 + 0.6, 1)) // 0.9;
答案 1 :(得分:0)
基本上以相同的方式,但JavaScript没有内置decimal
的数字类型。如果你搜索,你可以找到各种实现,如big.js
(只是一个示例< / em>,不是推荐)。
答案 2 :(得分:0)
使用BigNumber库。例如,math.js支持bignumbers(由decimal.js提供支持)。
使用math.js的表达式解析器,您可以使用bignumbers:
键入自然表达式// 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