您的位置:首页 > 其它

计算浮点数的精确结果

2015-12-16 16:52 323 查看
运行:

public class DoubleOperation {
public   static   void   main(String   args[]){
System.out.println(0.05+0.01);
System.out.println(1.0-0.42);
System.out.println(4.015*100);
System.out.println(123.3/100);
}
}


结果:



原因:

目前常用的float和double等浮点数是基于IEEE-754的二进制有限小数。一个有理数,除非分母是足够小的2的整数次幂,否则它就不能被精确表示。因此,有些十进制有限位数的小数,到二进制里面可能会变成无限循环小数,在浮点数中不能表示而损失精度。

解决办法:

引入java.math.BigDecimal类

并且调用构造方法是时,尽量用int或者String类型
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  浮点数计算