为什么toFixed()取整如此奇怪
Why toFixed() rounding is so strange
铬29.0.1547.57:
0.0095 .toFixed(3) // "0.009"
0.1095 .toFixed(3) // "0.110"
1.1095 .toFixed(3) // "1.109"
这个函数有什么问题
我知道我可以编写自己的函数,这里的问题是为什么stock函数如此bug?根据MDN的说法,它是在JS 1.5中实现的,所以它并不新鲜。或者我可能不理解这个函数,对吧?
问题是大多数十进制分数的二进制浮点表示并不精确。0.0095
的内部表示实际上可能类似于0.00949999
,因此toFixed
向下取整,而0.1095
可能是向上取整的0.109500001
。
请参阅Javascript to Fixed Not Rounding
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 为什么“;未定义的“;在JavaScript中结束循环
- 为什么这在IE中的工作方式与在Firefox中不同
- 知道为什么我的旋转木马不会自动更改图片吗
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)
- 为什么在变形之前不缺少Fx
- 为什么JavaScript在for循环为3时向所有4发出警报
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- 为什么Airbnb风格指南说不鼓励依赖函数名称推断
- 为什么要使用0>javascript中的0
- 为什么无法在TypeScript中导出类实例
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 为什么我的d3.jsselectAll+过滤器没有过滤
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- 为什么要在 JavaScript 方程式前面加号与 toFixed
- 为什么我不能在 2 个检索到的值的总和后执行 toFixed() 函数
- 为什么toFixed()取整如此奇怪
- 为什么5.00 >20.00对javascript parseFloat.tofixed(2)返回true
- 为什么Firebug说toFixed()不是一个函数