在使用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