Java类及其常用方法(六)BigDecimal

BigDecimal类:

运算的时候,float类型和double类型(浮点类型)会丢失数据,不精确,大部分的时候数据存储和整数类型存储不一致,属于有效位数字不精确

因此Java提供了一个类:BigDecimal

作用:不可变的,任意精度的有符号十进制数,让运算更精确

1.      BigDecimal构造方法:

publicBigDecimal(String val)

2.      BigDecimal常用的方法:

PublicBigDecimal add(BigDecimal augend)

Public BigDecimalsubtract(BigDecimal subtrahend)

PublicBigDecimal multiply(BigDecimal multiplicand)

PublicBigDecimal divide(BigDecimal divisor)

PublicBigDecimal divide(BigDecimal divisor,int scale,int roundingMode)

参数1BigDecimal divisor表示商

参数2int scale取的有效数字

参数3int roundingMode舍入的一种模式

代码:

public class BigDecimalDemo2 {

    public static void main(String[] args) {     

       BigDecimal bd1 = new BigDecimal("0.03");

       BigDecimal bd2 = new BigDecimal("0.07") ;

       System.out.println("add:"+bd1.add(bd2));

      

       BigDecimal bd3 = new BigDecimal("1.0");

       BigDecimal bd4 = new BigDecimal("0.28");

       System.out.println("sub:"+bd3.subtract(bd4));

      

       //publicBigDecimal multiply(BigDecimal multiplicand)

       BigDecimal bd5 = new BigDecimal("1.301") ;

       BigDecimal bd6 = new BigDecimal("100") ;

       System.out.println("mul:"+bd5.multiply(bd6));

      

       //publicBigDecimal divide(BigDecimal divisor)

       BigDecimal bd7 = new BigDecimal("1.301");

       BigDecimal bd8 = new BigDecimal("100");

       System.out.println("div:"+bd7.divide(bd8));

       System.out.println("divide:"+bd7.divide(bd8, 3, BigDecimal.ROUND_HALF_UP));

       System.out.println("divide:"+bd7.divide(bd8, 8, BigDecimal.ROUND_HALF_UP));

      

      

    }

}

 

BigInteger类:

BigInteger用来计算超出int范围的数据的运算

  常用的构造犯法:

    publicBigInteger(String val):以字符串的形式表现一个十进制数据

常用的方法:

       publicBigInteger add(BigInteger val):

       publicBigInteger subtract(BigInteger val):

    publicBigInteger multiply(BigInteger val):

       publicBigInteger divide(BigInteger val)

 

        public BigInteger[]divideAndRemainder(BigInteger val):返回的是数组(商和余数)

代码:

public class BigIntegerDemo2 {

    public static void main(String[] args) {

       //定义两个BigInteger的数据

       BigInteger b1 = new BigInteger("128");

       BigInteger b2 = new BigInteger("42");

      

//     public BigInteger add(BigInteger val):

       System.out.println("add:"+b1.add(b2));

      

       //publicBigInteger subtract(BigInteger val):

       System.out.println("sub:"+b1.subtract(b2));

      

       //publicBigInteger multiply(BigInteger val):

       System.out.println("mul:"+b1.multiply(b2));

      

//     public BigInteger divide(BigInteger val)

       System.out.println("div:"+b1.divide(b2));

      

//     public BigInteger[]divideAndRemainder(BigInteger val):返回的是数组(商和余数

       BigInteger[] bi =b1.divideAndRemainder(b2);

       System.out.println("bi[0]:"+bi[0]);

       System.out.println("bi[0]:"+bi[1]);

    }

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值