📅  最后修改于: 2023-12-03 15:27:28.342000             🧑  作者: Mango
BigDecimal是Java中用于精确计算的类,适用于需要精确计算的商业/金融计算。由于计算机底层存储数字时使用二进制表示,因此在进行十进制小数计算时,可能会丢失精度。BigDecimal类可以很好地解决这个问题,提供了高精度计算的方法。
在使用BigDecimal类进行计算时,需要先创建BigDecimal对象。有多种方法可以创建BigDecimal对象:
BigDecimal a = new BigDecimal("123.456"); //基于字符串创建
BigDecimal b = new BigDecimal(123.456); //基于double类型创建
BigDecimal c = BigDecimal.valueOf(123.456); //基于double类型创建
BigDecimal a = new BigDecimal("5.5");
BigDecimal b = new BigDecimal("6.6");
//加法
BigDecimal c = a.add(b);
//减法
BigDecimal d = a.subtract(b);
//乘法
BigDecimal e = a.multiply(b);
//除法,除不尽时抛出异常
BigDecimal f = a.divide(b);
//除法,四舍五入,scale为小数点后保留的位数
BigDecimal g = a.divide(b, 2, RoundingMode.HALF_UP);
//取余数
BigDecimal h = a.remainder(b);
//取反
BigDecimal i = a.negate();
可以使用compareTo()方法比较大小。返回值如下:
BigDecimal a = new BigDecimal("5.5");
BigDecimal b = new BigDecimal("6.6");
int result = a.compareTo(b);
还有其他的一些方法,例如:
BigDecimal类是Java中用于精确计算的类,对于商业/金融计算非常有用。在进行小数计算时,可能会丢失精度,因此需要使用BigDecimal类进行高精度计算。创建BigDecimal对象时,可以基于字符串或double类型等方式。在计算过程中,可以进行加、减、乘、除、取余数、取反等操作。在比较大小时,可以使用compareTo()方法。使用BigDecimal类可以大大提高计算的精度,特别适用于涉及到货币计算等场景。