为什么0.2x0.2=0.04000000000000001
scratch吧
全部回复
仅看楼主
level 7
甘心果 楼主
刚好小数点后17位
2021年02月06日 04点02分 1
level 9
二进制与十进制转换误差[滑稽]
2021年02月06日 05点02分 2
level 6
楼上正解[滑稽]可以乘100然后四舍五入再除以一百保留两位小数
2021年02月06日 12点02分 3
妙啊
2021年02月06日 15点02分
level 4
2021年02月07日 07点02分 4
level 1
2.0会吗[滑稽]
2021年07月14日 13点07分 6
level 10
计算机特色,似乎用其它语言也会这样(高精度计算除外)
2021年07月16日 02点07分 7
level 12
这个不是sc的问题
是js的问题
双精度二进制与十进制的转换误差
好比你要买1尺(3尺=1m应该是)绳子
老板说绳子按米卖
这时候你只能卖3.3333333……米的绳子,无限逼近,但是永远有那么一点误差
多出来的0.0000000000001就属于这种情况
顺带一提,双精度的二进制小数位数是有限的,50多位
2021年08月01日 05点08分 8
2.0不会这样。因为3.0是js写的,2.0不是
2021年08月01日 05点08分
level 3
任何以浮点数表示的小数运算都会这样。
若需精确,楼主可以试试高精度运算
若不需要太多位,可以保留5位小数
2021年08月01日 19点08分 9
level 7
简单来说,就是计算机老特性了,可以直接把乘数*10再把结果/100
2021年08月11日 06点08分 10
1