java.math 有两个处理任意长度的类:BigInterger and BigDecimal 。它们可以处理任意长度的数字序列的数值,分别代表整数运算,浮点数运算。

    与 C++ 不同,Java 没有提供运算符重载功能。程序员无法重定义 + 和 * 运算符,使其应用于 BigInteger 类的 add()multiply() 运算。Java 语言的设计者确实为字符串的连接重载了 + 运算符,但没有重载其他的运算符,也没有给 Java 程序员在自己的类中重载运算符的机会。

    add(), subtract(), multiply(), divide(), mod(), 分别代表加、减、乘、除和取余。
    a.compareTo(b) 表示大数之间的比较,相等返回 0,a < b 返回负数,否则返回正数。
    valueOf(long x),返回等于 x 的大整数。注意,该方法为静态方法。
    这里要注意 BigDecimaldivide()BigInteger 不同。

    1. BigDecimal divide (BigDecimal other, RoundingMode mode)

    这里要给出舍入方式(rounding mode)。RoundingMode.HALF_UP 是四舍五入方式,其他方式可看 API 文档。