在使用float和double的时候会发生精度丢失,而BigDecimal类就是为了处理精度的问题。
BigDecima类的构造方法有BigDecimal(double avl)这个构造方法不推荐,同样会造成精度丢失,可以使用
BigDecimal(String val)。
下面测试一下BigDecimal的用法
import java.math.BigDecimal;
public class Test {
public static void main(String[] args) throws Exception
{
BigDecimal b1=new BigDecimal("0.43848484");
BigDecimal b2=new BigDecimal("0.05");
BigDecimal b3=null;
b3=b1.add(b2);
System.out.println(b3);
b3=b1.subtract(b2);
System.out.println(b3);
b3=b1.multiply(b2);
System.out.println(b3);
b3=b1.divide(b2);
System.out.println(b3);
b3=b1.pow(2);
System.out.println(b3);
}
}
输出结果
0.48848484
0.38848484
0.0219242420
8.7696968
0.1922689549098256
本文介绍如何使用BigDecimal类解决浮点数运算中的精度丢失问题,通过实例展示了BigDecimal在加、减、乘、除、幂操作上的应用。
343

被折叠的 条评论
为什么被折叠?



