浮点0.2+0.1舍入误差
floating point 0.2 + 0.1 rounding error
可能重复:
是JavaScript';s数学坏了吗?
我遇到了这个舍入问题:
当我这样做时:
.2 + .1 results in 0.30000000000000004
.7 + .1 results in 0.7999999999999999
1.1 + .1 results in 1.2000000000000002
等等…
有人能(详细地)解释一下原因吗?可能是一些二进制舍入的东西。但我真的很想知道会发生什么。。。
.2
实际上不是.2;它实际上是最接近的可表示的双精度数字,即
0.200000000000000011102230246251565404236316680908203125.
类似地,.1
实际上是
0.1000000000000000055511151231257827021181583404541015625
当你把这些加在一起时,结果会再次四舍五入到最接近的可表示数字,即
0.3000000000000000444089209850062616169452667236328125
最后,当你打印出来时,这个数字会四舍五入到17位小数,得到你观察到的结果。
你的其他例子也遵循同样的模式。
相关文章:
- 处理浮点错误的最佳方法是什么
- 特殊'浮点'在马赛克盒子
- 浮点0.2+0.1舍入误差
- javascript中的浮点比较
- 有没有办法在里面看到一个数字'的64位浮点IEEE754表示
- 浮点数字问题JavaScript
- 谷歌材料图表:停止工具提示舍入
- 浏览器错误的javascript浮点计算
- 如何使用javascript验证在表单输入中避免负值、浮点值和十进制值
- 浮点:以日期/时间作为 x 轴的图形未正确绘制
- jQuery - 带有一些数字的表格计算出现奇怪的舍入错误
- 将浮点数向上舍入到 javascript 中的下一个整数
- 这 === 是否不适用于浮点舍入不准确的 b/c
- 如何使用javascript对图形中的浮点值进行舍入
- IEEE 754浮点算术舍入错误在c#和javascript
- 如何使舍入误差最小的百分比分布
- 解析浮点数有舍入限制?我怎样才能解决这个问题
- Javascript浮点问题-舍入问题
- 在JavaScript中舍入浮点数
- 这是一种可靠的方法来处理Javascript中浮点数相乘时的舍入错误吗