虽然3 * 0.1无法准确表示,但为什么Javascript可以正确计算0.15 * 2?

时间:2013-01-10 04:55:42

标签: javascript floating-point

  

可能重复:
  Is JavaScript’s Floating-Point Math Broken?

在Javascript中,

3 * 0.1 = 0.30000000000000004

我认为这是由于语言编号系统无法准确表示0.3。但为什么以下呢?

0.15 * 2 = 0.3

类似地,

0.1 + 0.2 = 0.30000000000000004

但是

0.15 + 0.15 = 0.3

怎么样?

1 个答案:

答案 0 :(得分:4)

  

但为什么以下?

     

0.15 * 2 = 0.3

结果不完全是0.3,但它足够接近,以便当最低有效数字四舍五入显示值时,它会四舍五入为0.3。

0.10.15也不准确,但代表0.1的错误似乎大于0.15。当您在计算中使用这些值时,错误会累积,并且它们迟早会变得足够大,在显示值时不会被舍入。