如何修复0.3+;Javascript中的0.6=0.899999999?

如何修复0.3+;Javascript中的0.6=0.899999999?,javascript,math,Javascript,Math,当添加两个浮点值时,我将得到如下结果: 0.3+0.6 = 0.89999999999 我知道发生了什么事。在C#中,我们可以使用十进制,但在Javascript中,如何修复它?基本上是相同的方式,但Javascript没有内置类似于十进制的数字类型。如果搜索,您可以找到各种实现,例如(只是一个示例,不是推荐)。使用BigNumber库。例如,它支持bignumbers(由提供动力) 使用math.js的表达式解析器,您可以使用bignumbers键入自然表达式: // configure

当添加两个浮点值时,我将得到如下结果:

0.3+0.6 = 0.89999999999 

我知道发生了什么事。在C#中,我们可以使用十进制,但在Javascript中,如何修复它?

基本上是相同的方式,但Javascript没有内置类似于十进制的数字类型。如果搜索,您可以找到各种实现,例如(只是一个示例,不是推荐)。

使用BigNumber库。例如,它支持bignumbers(由提供动力)

使用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
数学
如果只是表示问题,请使用
.toFixed
将浮点数格式化为字符串。
MathUtils = {
    roundToPrecision: function(subject, precision) {
        return +((+subject).toFixed(precision));
    }
};

console.log(MathUtils.roundToPrecision(0.3 + 0.6, 1)) // 0.9;