Java大数运算
概述
在 Java 中提供了大数字的操作类,即 java.math.BigInteger 类与 java.math.BigDecimal 类。这两个类用于高精度计算,BigInteger 类是针对大整数的处理类,而 BigDecimal 类则是针对大浮点数的处理类。
BigInteger
构造方法
1 | public static BigInteger valueOf(long val) { |
1 | public BigInteger(String val, int radix) { |
1 | public BigInteger(String val) { |
常用方法
public BigInteger add(BigInteger val):做加法运算public BigInteger subtract(BigInteger val):做减法运算public BigInteger multiply(BigInteger val): 做乘法运算public BigInteger divide(BigInteger val): 做除法运算public BigInteger mod(BigInteger m):做求余运算public boolean equals(Object x):做数字比较操作(true / false)public int compareTo(BigInteger val):做数字比较操作(1 / -1 / 0)public BigInteger min(BigInteger val): 返回较小的数值public BigInteger max(BigInteger val): 返回较大的数值
示例
1 | public class BigIntegerTest { |
运行结果
1 | 加法操作:13 |
BigDecimal
构造方法
1 | public BigDecimal(double val) { |
1 | public BigDecimal(String val) { |
常用方法
public BigDecimal add(BigDecimal augend):做加法操作public BigDecimal subtract(BigDecimal subtrahend):做减法操作public BigDecimal multiply(BigDecimal multiplicand):做乘法操作public BigDecimal divide(BigDecimal divisor, int sacle, int roundingMode):做除法操作,方法中 3 个参数分别代表除数、商的小数点后的位数、近似处理模式
示例
1 | public class BigDecimalTest { |
运行结果
1 | 加法操作:1.399999999999999966693309261245303787291049957275390625 |