java使用float或者double 运算,精度丢失问题,IEEE754
public static void main(String[] args) {
System.out.println(0.1+0.2);
BigDecimal bigDecimal=new BigDecimal(0.1+"");
BigDecimal bigDecimal2=new BigDecimal(0.2+"");
BigDecimal add = bigDecimal.add(bigDecimal2);
double doubleValue = add.doubleValue();
System.out.println(doubleValue);
}
打印结果: 0.30000000000000004 0.3
原因:java采用IEEE754标准,在将十进制 0.1 ,0.2转二进制时,无法准确表达,导致精度丢失,建议将浮点型先转String 在
版权声明:
作者:zhangchen
链接:https://www.techfm.club/p/12216.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。
THE END
二维码
共有 0 条评论