我们知道float最大精度是7-8位有效数字,而double的最大精度是16-17位有效数字,那么大于16位的我们怎么来表示呢?这就需要用到BigDecimal,用来对超过16位有效位的数进行精确的运算。 BigDecimal经常在银行、账务系统进行使用。
class MathUtil{
public MathUtil() {}
public static double round(double num, int scale) {
return new BigDecimal(num).divide(new BigDecimal(1.0), scale, RoundingMode.HALF_UP).doubleValue();
}
}
public class BigDecTest {
public static void main(String[] args) {
System.out.println(MathUtil.round(19.67855, 2));
}
}
运行结果:
本文由博客群发一文多发等运营工具平台 OpenWrite 发布
原文:https://www.cnblogs.com/undefined22/p/12543174.html