基础知识总结:小数计算为什么不精确?

来源:互联网 发布:ac68u 网络设置 编辑:程序博客网 时间:2024/06/01 23:35

类型float的的计算不精确的问题 

System.out.println(0.1f*0.1f);

得到0.0100001

不精确的原因:因为计算机是用二进制存储小数的,这个二进制不能精确表示0.1只能表示一个无限接近0.1的一个数,为什么0.1不能精却表示因为二进制使用2的多少次方

2^-1           0.5

2^-2           0.25

2^-3           0.125

2^-4           0.0625

所以进行计算的结果会出现不精确的情况,当误差足够小的时候就看上去是精确的,其实一般是不精确的

要保持精确用BigDecimal的类型,就是效率低

阅读全文
0 0
原创粉丝点击