Java 中 java.math 包中有两个很有用的类:BigIntger 和 BigDecimal。这两个类可以处理包含任意长度数字序列的数值。BigInterger 类实现了大数值的整数运算,BigDecimal 实现了大数值任意精度的浮点数运算。
BigInteger
使用静态的 valueOf 方法可以将普通的数值转换为大数值:
BigInteger a = BigInteger.valueOf(100);
BigInteger b = BigInteger.valueOf(50);
Java 并不支持 算术运算符(如:+、-、*、/)处理大数值,而需要使用大数值类中的方法:
BigInteger c = a.add(b); // c = a + b
BigInteger d = c.multiply(b.add(a)); // d = c * (b + 2)
BigInteger 常用运算:
BigInteger add(BigInteger other)
// 加
BigInteger subtract(BigInteger other)
// 减
BigInteger multiply(BigInteger other)
// 乘
BigInteger divide(BigInteger other)
// 除
BigInteger mod(BigInteger other)
// 求余