BigDecimal类

BigDecimal类

直接进行运算有误差

public class Test_1 {
    public static void main(String[] args) {
        double d1=1.0;
        double d2=0.9;
        System.out.println(d1-d2);//0.09999999999999998
    }
}
  • 加add()

    • BigDecimal r2=bd1.add(bd2);
  • 减subtract()

    • BigDecimal r1=bd1.subtract(bd2);
  • 乘multiply()

    • BigDecimal r3=bd1.multiply(bd2);
  • 除divide()

    • 出的尽(多项式)

      //(1.5-1.4)/0.9
      BigDecimal r4=new BigDecimal(“1.4”)
      .subtract(new BigDecimal(“0.5”))
      .divide(new BigDecimal(“0.9”));

    • 除不尽

      //(自己设置:保留两位小数,四舍五入)

      BigDecimal r5=bd1.divide(bd2,2,BigDecimal.ROUND_HALF_UP);

  • 总代码:

public class Test_1 {
    public static void main(String[] args) {
        //用字符串构造
        BigDecimal bd1=new BigDecimal("1.0");
        BigDecimal bd2=new BigDecimal("0.9");

        //减法:bd1-bd2:用subtract()
        BigDecimal r1=bd1.subtract(bd2);
        System.out.println(r1);
        //加法:bd1+bd2:用add()
        BigDecimal r2=bd1.add(bd2);
        System.out.println(r2);
        //乘法:multiply()
        BigDecimal r3=bd1.multiply(bd2);
        System.out.println(r3);
        //除法:divide()  除不尽就出现问题,需要确定范围
        //(1.5-1.4)/0.9
        BigDecimal r4=new BigDecimal("1.4")
                .subtract(new BigDecimal("0.5"))
                .divide(new BigDecimal("0.9"));
        System.out.println(r4);
        //除不尽的处理方法(保留两位小数,四舍五入)
        BigDecimal r5=bd1.divide(bd2,2,BigDecimal.ROUND_HALF_UP);
        System.out.println(r5);

    }
}
  • 输出结果
0.1
1.9
0.90
1
1.11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值