我在使用 .toFixed(i) 时注意到了奇怪的行为。我试图四舍五入(38.174999 * 100)并得到奇怪的结果
console.log(`i: ${i} = `, (38.174999 * 10 ** 2).toFixed(i))
i: 1 = 3817.5
i: 2 = 3817.50
i: 3 = 3817.500
i: 4 = 3817.4999
i: 5 = 3817.49990
i: 6 = 3817.499900
i: 7 = 3817.4999000
i: 8 = 3817.49990000
i: 9 = 3817.499900000
i: 10 = 3817.4999000000
i: 11 = 3817.49990000000
i: 12 = 3817.499900000000
i: 13 = 3817.4998999999998
从13开始它是相似的。有谁知道原因并且已经尝试根据 JS 规范http://www.ecma-international.org/ecma-262/#sec-number.prototype.tofixed检查发生了什么
对于所有将这个问题标记为0.1 + 0.2
问题的人来说,情况并不相同。问题是为什么.toFixed(13)
与.toFixed(12)