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

来源:互联网 发布:淘宝海外全球购 编辑:程序博客网 时间:2024/05/01 18:09

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(BigIntegerval):

       publicBigInteger subtract(BigIntegerval):

    publicBigInteger multiply(BigIntegerval):

       publicBigInteger divide(BigIntegerval)

 

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

代码:

public class BigIntegerDemo2 {

    public static void main(String[] args) {

       //定义两个BigInteger的数据

       BigInteger b1 = new BigInteger("128");

       BigInteger b2 = new BigInteger("42");

      

//     public BigInteger add(BigIntegerval):

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

      

       //publicBigInteger subtract(BigIntegerval):

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

      

       //publicBigInteger multiply(BigIntegerval):

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

      

//     public BigInteger divide(BigIntegerval)

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

      

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

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

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

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

    }

 

 

 

 

原创粉丝点击