
BigDecimal 是 Java 中用于高精度浮点数运算的类,属于 java.math 包。它提供了比基本数据类型(如 float 和 double)更高精度的浮点数表示,特别适用于财务计算、科学计算等需要精确结果的场景
BigDecimal 可以处理任意精度的数值BigDecimal 是不可变类,任何运算操作都会返回一个新的 BigDecimal 对象,而不会修改原来的对象BigDecimal 支持加、减、乘、除等运算,并且可以设置精度和舍入模式BigDecimal?Java 中的 float 和 double 类型虽然可以存储浮点数,但由于它们使用二进制表示,无法精确表示所有十进制数,这可能导致精度丢失或舍入误差。而 BigDecimal 可以进行精确的计算,避免这种精度问题
BigDecimal.valueOf 方法(推荐方式)
ini 体验AI代码助手 代码解读复制代码BigDecimal num3 = BigDecimal.valueOf(13.14);
java 体验AI代码助手 代码解读复制代码public class BigDecimalExample {
public static void main(String[] args) {
// 使用字符串初始化 BigDecimal 对象
BigDecimal num1 = new BigDecimal("10.5");
BigDecimal num2 = new BigDecimal("4.3");
// 加法运算
BigDecimal sum = num1.add(num2);
System.out.println("Sum: " + sum); // Output: Sum: 14.8
}
}java 体验AI代码助手 代码解读复制代码public class BigDecimalExample {
public static void main(String[] args) {
// 使用字符串初始化 BigDecimal 对象
BigDecimal num1 = new BigDecimal("10.5");
BigDecimal num2 = new BigDecimal("4.3");
// 减法运算
BigDecimal difference = num1.subtract(num2);
System.out.println("Difference: " + difference); // Output: Difference: 6.2
}
}java 体验AI代码助手 代码解读复制代码public class BigDecimalExample {
public static void main(String[] args) {
// 使用字符串初始化 BigDecimal 对象
BigDecimal num1 = new BigDecimal("10.5");
BigDecimal num2 = new BigDecimal("4.3");
// 乘法运算
BigDecimal product = num1.multiply(num2);
System.out.println("Product: " + product); // Output: Product: 45.15
}
}java 体验AI代码助手 代码解读复制代码public class BigDecimalExample {
public static void main(String[] args) {
// 使用字符串初始化 BigDecimal 对象
BigDecimal num1 = new BigDecimal("10.5");
BigDecimal num2 = new BigDecimal("4.3");
// 除法运算,指定舍入模式和精度
BigDecimal quotient = num1.divide(num2, 2, BigDecimal.ROUND_HALF_UP);
System.out.println("Quotient: " + quotient); // Output: Quotient: 2.44
}
}常见的舍入模式
BigDecimal.ROUND_UP:总是向远离零的方向舍入BigDecimal.ROUND_DOWN:总是向零的方向舍入BigDecimal.ROUND_HALF_UP:四舍五入BigDecimal.ROUND_HALF_DOWN:五舍六入本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。