技术解析

JS 的 toFixed 方法到底是怎么取值的
0
2021-08-30 17:01:32
idczone

文档上说的是 四舍五入 为什么 52.635 就是 52.63 呢

52.635.toFixed(2)  // "52.63"
47.365.toFixed(2)  // "47.37"

入了就入了,舍了就舍了,想入就入,想舍就舍
我是 JS,我为我自己带盐

偶进奇不进?

每个语言都有这个问题,C#为例,也是奇进偶舍。https://www.cnblogs.com/lztkdr/p/MathRoundToEven.html

按道理应该是四舍五入,这个可能是浮点数精度问题

重写 Number.prototype.toFixed

Math.round(52.635*100)/100
(52.635+0.000001).toFixed(2)
坑死人不偿命
9007199254740992+1 = 多少
9007199254740995+1 = 多少

ECMAScript 的 Spec 上没有说是四舍五入啊
数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服