float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。但是,商业计算往往要求结果精确,这时候BigDecimal就派上大用场啦。
当然要先引入函数 import java.math.BigDecimal;
接着就可以在类中使用了
public static void main(String[] args)
{
BigDecimal a = new BigDecimal(“4.5”);
BigDecimal b = new BigDecimal(“1.5”);
System.out.println(“a + b =” + a.add(b));
System.out.println(“a - b =” + a.subtract(b));
System.out.println(“a * b =” + a.multiply(b));
System.out.println(“a / b =” + a.divide(b));
}
就像这样
注意
(1) 在除法运算中,如果不能整除系统会报错。(例如:4.5/1.3)
java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
(2) public static void main(String[] args)
{
BigDecimal a = new BigDecimal(“4.5”);
BigDecimal b = new BigDecimal(“1.5”);
a.add(b);
System.out.println(a); //输出4.5. 加减乘除方法会返回一个新的BigDecimal对象,原来的a不变
}