1.1java中默认当double处理。
数据转为2进制处理,
2.0=10.0000000000000000截断
1.1=01.0001100110011001截断 SP:并不是所有的小数都能用2进制准确表示,这个就是一直循环。因为是double在这截断。
2数二进制相减,0.1110011001100111转为10进制只能接近0.8999999999999999了。
如果是(2.0f-1.1f)就能算出0.9
指明了2数为float型,但java先都转为doule型运算,然后四舍五入为0.9f.
(之前我也不明白,网上参考的这个,楼主可以看看) |
|