如何在JavaScript中减去两个浮点值?

How subtraction of two float values in JavaScript?

我对两个值的减法有疑问。当我将 discount_amt 值设置为 2.5 然后总 return 我 0.5 但是当 discount_amt 设置为 2.6 它 return 0.3999999999999999 而不是 0.4 为什么?

var total        = parseFloat('3').toFixed(1);
var discount_amt = parseFloat('2.6').toFixed(1);
    total        = total - discount_amt;
    console.log(total);

var total        = parseFloat('3').toFixed(1);
var discount_amt = parseFloat('2.6').toFixed(1);
    total        = total - discount_amt;
    console.log(total);

这似乎可以解决问题。你忘了 parsefloat() 和 tofixed()

total = 3;
discount_amt = 2.6;

console.log(parseFloat(total).toFixed(1) + ' ' + parseFloat(discount_amt).toFixed(1));
total = parseFloat(total).toFixed(1) - parseFloat(discount_amt).toFixed(1);
console.log(parseFloat(total).toFixed(1));

为什么这样处理浮点数的解释:answer or directly to the link that answer refers to link