如果基本的整数和浮点数都无法满足需求,则可以使用java.math提供的BigInteger和BigDecimal来处理,可以通过静态方法valueOf将普通数值转换为大数。
java.math.BigInteger
-
BigInteger add(BigInteger other)
大数加
-
BigInteger subtract(BigInteger other)
大数减
-
BigInteger multiply(BigInteger other)
大数乘
-
BigInteger divide(BigInteger other)
大数除
-
BigInteger mod(BigInteger other)
大数取余
-
BigInter sqrt()
大数平方
-
int compareTo(BigInteger other)
比较 如果相等返回0,如果小于other返回负数,如果大于other返回正数
java.math.BigDecimal
-
BigDecimal add(BigDecimal other)
大数加
-
BigDecimal subtract(BigDecimal other)
大数减
-
BigDecimal multiply(BigDecimal other)
大数乘
-
BigDecimal divide(BigDecimal other)
大数除,如果商为无限循环,则抛出异常
-
BigDecimal divide(BigDecimal other,RoundingMode mode)
大数除,对商进行四舍五入取值
-
BigDecimal mod(BigDecimal other)
大数取余
-
BigDecimal sqrt()
大数平方
-
int compareTo(BigDecimal other)
比较 如果相等返回0,如果小于other返回负数,如果大于other返回正数
注:
浮点数double和float无法进行精确运算,因此如果需要进行精确运算需要使用BigDecimal