javascript中的十进制减法问题

时间:2012-05-23 05:20:01

标签: javascript

  

可能重复:
  Is JavaScript's Math broken?

当我减去6.4-1.6时,我在JS中得到答案为4.800000000000001,但我需要4.8而不使用toFixed(),toPrecision()和Math.round()。任何的想法???

谢谢,

2 个答案:

答案 0 :(得分:16)

在进行减法之前转换为整数以避免浮点运算出现问题:

(6.4 * 10 - 1.6 * 10) / 10

请参阅What Every Programmer Should Know About Floating-Point Arithmetic

答案 1 :(得分:1)

这是IEEE 754浮点数的well-known limitation。有关解决方案,请参阅How to deal with floating point number precision in JavaScript?