一、Biginteger
1.1、介绍
java.math.Biginteger类不是基本数据类型之一,可以用来对一些大整数做运算。当超出基本数据类型数据范围的整数运算时就可以使用BigInteger了。
1.2、构造方法
BigInteger(String value)
可以将整数的字符串,转换为BigInteger对象。
1.3、常用方法
public BigInteger add(BigInteger value) // 超大整数加法运算 public BigInteger subtract(BigInteger value) // 超大整数减法运算 public BigInteger multiply(BigInteger value) // 超大整数乘法运算 public BigInteger divide(BigInteger value) // 超大整数除法运算,除不尽取整数部分
例子
public class BigIntegerTest { public static void main(String[] args) { BigInteger bigNum1 = new BigInteger("123456789987654321"); BigInteger bigNum2 = new BigInteger("2"); System.out.println("加法结果:" + bigNum1.add(bigNum2)); // 加法结果:123456789987654323 System.out.println("减法结果:" + bigNum1.subtract(bigNum2)); // 减法结果:123456789987654319 System.out.println("乘法结果:" + bigNum1.multiply(bigNum2)); // 乘法结果:246913579975308642 System.out.println("除法结果:" + bigNum1.divide(bigNum2)); // 除法结果:61728394993827160 } }
二、BigDecimal
2.1、介绍
java.math.BigDecimal可以对大浮点数进行运算,保证运算的准确性。float、double它们在存在及运算的时候,会导致数据精度的丢失。如果要保证运算的准确性,就需要使用BigDeciaml。
2.2、构造方法
BigDecimal(String val)
将BigDecimal的字符串表示形式转换为BigDecimal。
2.3、常用方法
public BigDecimal add(BigDecimal value) // 加法运算 public BigDecimal subtract(BigDecimal value) // 减法运算 public BigDecimal multiply(BigDecimal value) // 乘法运算 public BigDecimal divide(BigDecimal value) // 除法运算(除不尽会有异常) public BigDecimal divide(BigDecimal value, int scale, RoundingMode roundingMode) // 除法运算(除不尽,使用该方法)参数说明:scale 准确位数,roundingMode取舍模式 RoundingMode.HALF_UP 四舍五入
例子
public class BigDecimalTest { public static void main(String[] args) { BigDecimal bigDec1 = new BigDecimal("10.999999999999999"); BigDecimal bigDec2 = new BigDecimal("0.3001"); System.out.println("加:" + bigDec1.add(bigDec2)); // 加:11.300099999999999 System.out.println("减:" + bigDec1.subtract(bigDec2)); // 减:10.699899999999999 System.out.println("乘:" + bigDec1.multiply(bigDec2)); // 乘:3.3010999999999996999 System.out.println("除:" + bigDec1.divide(bigDec2, 3, RoundingMode.HALF_UP)); // 除:36.654 } }