为什么这不能按预期给出结果?
console.log(0.2+0.1); // gives 0.30000000000000004
console.log(0.2+0.3); // gives 0.5
console.log(0.2+0.5); // gives 0.7
console.log(0.2+0.4); // gives 0.6000000000000001
为什么first
和last
无法按预期提供结果?
答案 0 :(得分:1)
这是因为JavaScript
使用IEEE Standard
Binary Floating-Point Arithmetic
。
所有floating point math
都是这样的,基于IEEE 754 standard
。 JavaScript使用64-bit floating point representation
,它与Java的double
相同。
答案 1 :(得分:0)
尝试.toFixed()
。此方法会格式化一个数字右侧特定位数的数字。
console.log((0.2 + 0.1).toFixed(1)); // gives 0.3
console.log((0.2 + 0.3).toFixed(1)); // gives 0.5
console.log((0.2 + 0.5).toFixed(1)); // gives 0.7
console.log((0.2 + 0.4).toFixed(1)); // gives 0.6