欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

(Java)BigDecimal 类

程序员文章站 2024-03-14 20:12:11
...

对于不需要任何准确计算准确精度的数字可以直接使用 float 或 double,但是如果需要精确计算的结果,则必须使用 BigDecimal 类,而且使用 BigDecimal 类也可以进行大数的操作
(Java)BigDecimal 类

import java.math.BigDecimal;

class MyMath{
    public static double add(double d1,double d2){
        BigDecimal b1 = new BigDecimal(d1);
        BigDecimal b2 = new BigDecimal(d2);
        return b1.add(b2).doubleValue();
    }
    public static double sub(double d1,double d2){
        BigDecimal b1 = new BigDecimal(d1);
        BigDecimal b2 = new BigDecimal(d2);
        return b1.subtract(b2).doubleValue();
    }
    public static double round(double d,int len){//进行四舍五入操作
        BigDecimal b1 = new BigDecimal(d);
        BigDecimal b2 = new BigDecimal(1);
        //任何一个数字除以1都是原数字
        //ROUND_HALF_UP是BigDecimal的一个常量,表示四舍五入的操作
        return b1.divide(b2,len,BigDecimal.ROUND_HALF_UP).doubleValue();
    }
}
public class Test{
    public static void main(String[] args) {
        System.out.println("加法运算:" + MyMath.round(MyMath.add(10.345,3.333),1));
        System.out.println("减法运算:" + MyMath.round(MyMath.sub(10.345,3.333),3));
    }
}

(Java)BigDecimal 类
这里最重要的就是 round 方法,此处的四舍五入操作实际上是用 divide 方法实现的,因为只有此方法才可以指定小数点之后的位数,而且任何一个数字除以1都是原数字。

其他方法可参考

相关标签: java