如果基本的整数和浮点数精度不能够满足需求, 那么可以使用jaVa.math 包中的两个很有用的类:Biglnteger 和 BigDecimaL 这两个类可以处理包含任意长度数字序列的数值。Biglnteger 类实现了任意精度的整数运算, BigDecimal 实现了任意精度的浮点数运算。
使用静态的 valueOf方法可以将普通的数值转换为大数值:
Biglnteger a = Biglnteger.valueOf(100);
大数值不能使用算术运算符(如:+ 和 *) 处理大。 而需要使用大数值类中的 add 和 multiply 方法。
Biglnteger 接口
API java.math.Biglnteger 1.1
- Biglnteger add(Biglnteger other)
- Biglnteger subtract(Biglnteger other)
- Biglnteger multipiy(Biginteger other)
- Biglnteger divide(Biglnteger other)
- Biglnteger mod(Biglnteger other)
返冋这个大整数和另一个大整数 other 的和、 差、 积、 商以及余数。 - int compareTo(Biglnteger other)
如果这个大整数与另一个大整数 other 相等, 返回 0; 如果这个大整数小于另一个大整数 other, 返回负数; 否则, 返回正数。 - static Biglnteger valueOf(1 ong x)
返回值等于 x 的大整数
BigDecimal 接口
java.math.BigDecimal; 1.1
- BigDecimal add(BigDecimal other)
- BigDecimal subtract(BigDecimal other)
- BigDecimal multipiy(BigDecimal other)
- BigDecimal divide(BigDecimal other RoundingMode mode)
返回这个大实数与另一个大实数 other 的和、 差、 积、 商。要想计算商, 必须给出舍入方式 ( rounding mode。) RoundingMode.HALF UP 是在学校中学习的四舍五入方式( 即 , 数值0到4舍去, 数值5到9 进位)。它适用于常规的计算。有关其他的舍入方式请参看 Api文档。 - int compareTo(BigDecimal other)
如果这个大实数与另一个大实数相等, 返回 0 ; 如果这个大实数小于另一个大实数,返回负数;否则,返回正数。 - static BigDecimal valueOf(1 ong x)
- static BigDecimal valueOf(1 ong x ,int scale)
返回值为 X 或 x / 10scale 的一个大实数。