常用的API---BigDecimal

1.BigDecimal的作用

a.用于小数的精确计算

b.用来表示很大的小数

package heimaexample;

import java.math.BigDecimal;

public class text162 {
    public static void main(String[] args){
        //构造方法获取BigDecimal对象
        //通过double类型的小数来创建对象
        BigDecimal b1 = new BigDecimal(0.01);
        BigDecimal b2 = new BigDecimal(0.09);
        System.out.println(b1.add(b2));
        //细节:
        //这种方式有可能是不精确的,所以不建议使用

        //通过字符串来创建对象
        BigDecimal b3 = new BigDecimal("0.01");
        BigDecimal b4 = new BigDecimal("0.09");
        System.out.println(b3.add(b4));

        //通过静态方法获取对象
        BigDecimal b5 = BigDecimal.valueOf(0.01);
        System.out.println(b5);

        //细节:
        //1.如果要表示的数字不大,没有超出double的取值范围,建议使用静态方法
        //2.如果要表示的数字比较大,超出了double的取值范围,建议使用构造方法
        //3.如果我们传递的是0到10之间的整数,包含0,包含10,那么方法会返回已经创建好的对象,不会重新new
        //只能是整数的10,不能是10.0
        BigDecimal b6  = BigDecimal.valueOf(10);
        BigDecimal b7  = BigDecimal.valueOf(10);
        System.out.println(b6 == b7);//true

    }
}

2.BigDecimal的方法

方法名说明
public static BigDecimal valueOf(double val)获取对象
public BigDecimal add(BigDecimal val)加法
public BigDecimal subtract(BigDecimal val)减法
public BigDecimal multiply(BigDecimal val)乘法
public BigDecimal divide(BigDecimal val)除法
public BigDecimal divide (BigDecimal val,精确几位,输入模式)除法

UP  :远离零方向舍入模式
DOWN :向零方向舍入模式
CEILING :向正无穷方向舍入模式
FLOOR :向负无穷方向舍入模式
HAlF_UP  :接近四舍五入模式

package heimaexample;

import java.math.BigDecimal;
import java.math.RoundingMode;

public class text162 {
    public static void main(String[] args){
      

        //获取两个BigDecimal对象
        BigDecimal b8 = BigDecimal.valueOf(10.0);
        BigDecimal b9 = BigDecimal.valueOf(5.0);

        //public BigDecimal add(BigDecimal val)	加法
        BigDecimal result1 = b8.add(b9);
        System.out.println(result1);//15.0

        //public BigDecimal subtract(BigDecimal val)	减法
        BigDecimal result2 = b8.subtract(b9);
        System.out.println(result2);//5.0

        //public BigDecimal multiply(BigDecimal val)	乘法
        BigDecimal result3 = b8.multiply(b9);
        System.out.println(result3);//50.0

        //public BigDecimal divide(BigDecimal val)	除法
        BigDecimal result4 = b8.divide(b9);
        System.out.println(result4);//2
        //能除尽的时候用上面的这个

        //不能除尽的时候用下面的这个
        //public BigDecimal divide (BigDecimal val,精确几位,输入模式)	除法
        BigDecimal result5 = b8.divide(b9,2, RoundingMode.HALF_UP);
        System.out.println(result5);//2.00


        //UP  :远离零方向舍入模式
        //DOWN :向零方向舍入模式
        //CEILING :向正无穷方向舍入模式
        //FLOOR :向负无穷方向舍入模式
        //HAlF_UP  :接近四舍五入模式

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天酉小友

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值