Java中使用BigDecimal进行double类型的计算(高精度,可保留几位小数)


Java中 小数直接进行乘除运算,会出现精度问题导致计算结果有误
需要使用 BigDecimal 类型辅助运算,保证精度无误

源码:
import java.math.BigDecimal;
import java.math.RoundingMode;

public class BigDecimalDemo1 {
public static void main(String[] args) {
double a = 3.14159;
double b = 3.0;
BigDecimal a1 = BigDecimal.valueOf(a);
BigDecimal b1 = BigDecimal.valueOf(b);
//除法
//参数一 除数 参数二 保留小数位数 参数三 保留小数的规则(此处为四舍五入)
BigDecimal c1 = a1.divide(b1,3, RoundingMode.HALF_UP);
double c = c1.doubleValue();
System.out.println(a+" / "+b+" = " + c);

//乘法
double d = a1.multiply(b1).doubleValue();
System.out.println(a+" * "+b+" = " + d);

}
}

 

 

运行结果:

 

 

posted @ 2022-03-22 23:35  风陵南  阅读(229)  评论(0)    收藏  举报