【问题标题】:How subtraction of two float values in JavaScript? [duplicate]如何在 JavaScript 中减去两个浮点值? [复制]
【发布时间】:2018-09-13 15:02:15
【问题描述】:

我对两个值的减法有疑问。当我将 discount_amt 值设置为 2.5 时,总返回我 0.5,但是当 discount_amt 设置为 2.6 时,它返回 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);

【问题讨论】:

标签: javascript jquery floating-point subtraction


【解决方案1】:

这似乎解决了它。你忘了 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 或直接指向答案指向 link 的链接

【讨论】:

  • 但我已经将 parseFloat 和 toFixed 到了减法时间,那怎么会发生呢?
  • 因为你不解析浮点数并固定总数。但是你应该只在你的答案上使用 toFixed,因为之前使用它不会帮助你的函数的准确性
  • 好的,但我不知道为什么我仍然有问题。在你的回答中,输出是正确的,但是当我在我的代码中应用时,它仍然返回 0.3999999999999999
  • 好的。谢谢抱歉,我在代码中犯了愚蠢的错误。
  • 如果您想知道为什么 javascript 不准确,您可以访问此answer 或直接访问答案指向 link 的链接
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多