BigDecimal 类的作用:
Java 的 BigDecimal 类 用于进行高精度的十进制运算,避免了使用浮点数造成的精度丢失问题。
BigDecimal 提供了许多方法来执行基本的数学运算,如加减乘除、比较、区域等。
BigDecimal 类的常见用法示例:
1、创建 BigDecimal 对象:
BigDecimal number = new BigDecimal("10.25"); BigDecimal anotherNumber = BigDecimal.valueOf(5.75);
2、基本运算
BigDecimal sum = number.add(anotherNumber); // 加法 BigDecimal difference = number.subtract(anotherNumber); // 减法 BigDecimal product = number.multiply(anotherNumber); // 乘法 BigDecimal quotient = number.divide(anotherNumber); // 除法
3、比较
int result = number.compareTo(anotherNumber); // 比较大小,返回-1、0或1 boolean isEqual = number.equals(anotherNumber); // 判断是否相等 boolean isGreaterThan = number.compareTo(anotherNumber) > 0; // 判断是否大于
4、取余
BigDecimal remainder = number.remainder(anotherNumber); // 取余数
5、格式化输出
String formattedNumber = number.setScale(2, RoundingMode.HALF_UP).toString(); // 格式化为两位小数
注意:在进行运算时,必须使用BigDecimal的方法,而不能使用普通的算术操作符(如+、-、*、/),否则可能会导致精度丢失。
进阶
6、取整
BigDecimal number = new BigDecimal("10.25"); BigDecimal roundedNumber = number.setScale(0, RoundingMode.HALF_UP); // 将数值四舍五入为整数
7、取绝对值
BigDecimal number = new BigDecimal("-10.25"); BigDecimal absoluteValue = number.abs(); // 返回绝对值
8、求幂
BigDecimal base = new BigDecimal("2"); BigDecimal exponent = new BigDecimal("3"); BigDecimal power = base.pow(exponent.intValue()); // 求幂
9、平方根
BigDecimal number = new BigDecimal("25"); BigDecimal squareRoot = BigDecimalMath.sqrt(number, MathContext.DECIMAL128); // 计算平方根,需要使用BigDecimalMath类
注意:某些方法(如平方根)可能需要使用到第三方库,例如 Apache Commons Math(BigDecimalMath)。
10、判断是否小于 0
BigDecimal number = new BigDecimal("-1.25"); number.compareTo(BigDecimal.ZERO) < 0 // 如果 number 小于 0,则判断小于 0 // 如果 number 大于0,则判断大于 0
标签:Java,BigDecimal,10.25,number,new,anotherNumber,变量 From: https://www.cnblogs.com/Rover20230226/p/17513958.html