0

我在使用 .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)

4

0 回答 0