Java BigDecimal 精确计算指南:避免浮点数误差
BigDecimal 类是 Java 中用于精确计算的一个类。它可以处理大数运算和浮点数运算,保证精度和准确性,避免了浮点数运算中常见的舍入误差。
BigDecimal 类提供了各种加减乘除运算方法,包括 add()、subtract()、multiply() 和 divide() 等。这些方法都是精确计算的,不会产生舍入误差。
此外,BigDecimal 类还可以设置精度和舍入模式。精度用于指定小数点后的位数,舍入模式用于指定舍入的方式,如 ROUND_UP 表示向上舍入,ROUND_DOWN 表示向下舍入等。
以下是一个使用 BigDecimal 类进行精确计算的示例:
import java.math.BigDecimal;
public class BigDecimalExample {
public static void main(String[] args) {
BigDecimal num1 = new BigDecimal('10.5');
BigDecimal num2 = new BigDecimal('3');
BigDecimal result = num1.add(num2); // 加法
System.out.println('加法结果:' + result);
result = num1.subtract(num2); // 减法
System.out.println('减法结果:' + result);
result = num1.multiply(num2); // 乘法
System.out.println('乘法结果:' + result);
result = num1.divide(num2, 2, BigDecimal.ROUND_HALF_UP); // 除法,精度为2位,四舍五入
System.out.println('除法结果:' + result);
}
}
输出结果为:
加法结果:13.5
减法结果:7.5
乘法结果:31.5
除法结果:3.50
通过使用 BigDecimal 类,可以确保计算结果的精度和准确性,避免了浮点数运算中的舍入误差。
原文地址: https://www.cveoy.top/t/topic/qhvf 著作权归作者所有。请勿转载和采集!