BigDecimal:不可变的、任意精度的有符号十进制数,可以解决数据丢失问题。适用于为了能精确的表示、计算浮点数。
常用方法:

  • public BigDecimal add(BigDecimal augend) 加
  • public BigDecimal subtract(BigDecimal subtrahend) 减
  • public BigDecimal multiply(BigDecimal multiplicand)乘
  • public BigDecimal divide(BigDecimal divisor)除
  • public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode):商,保留scale位小数,舍取规则

BigInteger:大整数,可以运算不在Integer范围内的数据
举例:

        System.out.println(Integer.MAX_VALUE);
        BigInteger a = new BigInteger("4147483648");
        System.out.println("a:" + a);
        输出:
2147483647
a:4147483648

常用方法:

  • public BigInteger add(BigInteger val):加
  • public BigInteger subtract(BigInteger val):减
  • public BigInteger multiply(BigInteger val):乘
  • public BigInteger divide(BigInteger val):除
  • public BigInteger[] divideAndRemainder(BigInteger val):返回商和余数的数组
        BigInteger b1 = new BigInteger("12");
        BigInteger b2 = new BigInteger("5");

        // public BigInteger add(BigInteger val):加
        System.out.println("add:" + b1.add(b2));
        // public BigInteger subtract(BigInteger val):减
        System.out.println("subtract:" + b1.subtract(b2));
        // public BigInteger multiply(BigInteger val):乘
        System.out.println("multiply:" + b1.multiply(b2));
        // public BigInteger divide(BigInteger val):除,返回商
        System.out.println("divide:" + b1.divide(b2));

        // public BigInteger[] divideAndRemainder(BigInteger val):返回商和余数的数组
        BigInteger[] b = b1.divideAndRemainder(b2);
        System.out.println("商:" + b[0]);
        System.out.println("余数:" + b[1]);
        输出

        add:17
        subtract:7
        multiply:60
        divide:2
        商:2
        余数:2
posted on 2017-04-03 02:39  2637282556  阅读(155)  评论(0编辑  收藏  举报