在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
怎么样?
答案 0 :(得分:4)
但为什么以下?
0.15 * 2 = 0.3
结果不完全是0.3,但它足够接近,以便当最低有效数字四舍五入显示值时,它会四舍五入为0.3。
值0.1
和0.15
也不准确,但代表0.1
的错误似乎大于0.15
。当您在计算中使用这些值时,错误会累积,并且它们迟早会变得足够大,在显示值时不会被舍入。