13.4. 大数值

13.4.1. BigInteger

java.math.BigInteger是不可变的任意精度的大整数。

代码示例

package com.a51work6;

import java.math.BigInteger;

public class HelloWorld {

 public static void main(String[] args) {
  //创建BigInteger,字符串表示10进制数值
  BigInteger number1 = new BigInteger("999999999999");
  //创建BigInteger,字符串表示16进制数值
  BigInteger number2 = new BigInteger("567800000", 16);
  // 加法操作
  System.out.println("加法操作:" + number1.add(number2));
  // 减法操作
  System.out.println("减法操作:" + number1.subtract(number2));
  // 乘法操作
  System.out.println("乘法操作:" + number1.multiply(number2));
  // 除法操作
  System.out.println("除法操作:" + number1.divide(number2));
  }


}

/*
加法操作:1023211278335
减法操作:976788721663
乘法操作:23211278335976788721664
除法操作:43
 */

13.4.2. BigDecimal

java.math.BigDecimal是不可变的任意精度的有符号十进制数。

代码示例

package com.a51work6;

import java.math.BigDecimal;

public class HelloWord1 {

 public static void main(String[] args) {
  // TODO 自动生成的方法存根

  // 创建BigDecimal,通过字符参数串创建
  BigDecimal number1 = new BigDecimal("999999999.99988888");

  // 创建BigDecimal,通过double参数创建
  BigDecimal number2 = new BigDecimal(567800000.888888);
  // 加法操作
  System.out.println("加法操作:" + number1.add(number2));
  // 减法操作
  System.out.println("减法操作:" + number1.subtract(number2));
  // 乘法操作
  System.out.println("乘法操作:" + number1.multiply(number2));
  // 除法操作
  System.out.println("除法操作:" + number1.divide(number2, BigDecimal.ROUND_HALF_UP));
 }

}

/*
减法操作:432199999.11100087855804443359375
乘法操作:567800000888824907.5058567931715297698974609375000
除法操作:1.76118351
*/