使用.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 spec http://www.ecma-international.org/ecma-262/#sec-number.prototype.tofixed
检查运行情况对于所有将此问题标记为0.1 + 0.2
问题的人来说,情况都不一样。问题是为什么.toFixed(13)
与.toFixed(12)