我对Number.prototype.toFixed
chrome(v60.0.3112.101) 控制台中的方法做了一些测试,发现某事让我很困惑。
为什么1.15.toFixed(1)
返回“1.1”而不返回“1.2”?
为什么1.05.toFixed(1)
返回“1.1”而不返回“1.0”?
等等...
我在ECMAScript 规范中进行研究。
注 1 toFixed 返回一个字符串,其中包含以十进制定点表示法 表示的此 Number 值,小数点后有 fractionDigits 位。如果 fractionDigits 未定义,则假定为 0。
我知道什么是定点符号。但我无法解释上面的谜题。有人可以给出明确的解释吗?
顺便说一句,我认为应该改进规范下的细节算法。以 1.105 为例,相对算术如下:
令 n 为一个整数,其中 n ÷ 10^f - x 的精确数学值尽可能接近于零。如果有两个这样的 n,则选择较大的 n。
据pick the larger n
,应考虑 111 而不是考虑 110,这与现实相矛盾。