当基本的整数和浮点数精度满足不了要求时,我们就要考虑一些其它的办法了。
对于整数我们可以用BigInteger,
对于浮点数我们可以用BigDecimal
BigInteger a = BigInteger.valueOf(100);
BigInteger b = BigInteger.valueOf(100);
BigInteger c = a.add(b);
BigInteger d = c.multiply(b.add(BigInteger.valueOf(2)));
System.out.println(d);
这是个例子。
常用的BigInteger API
BigInteger add(BigInteger other)
BigInteger subtract(BigInteger other)
BigInteger multiply(BigInteger other)
BigInteger divide(BigInteger other)
BigInteger mod(BigInteger other)
返回这个整数的和、差、积、商以及余数
int compareTo(BigInteger other)
如果相等就返回0,如果这个大于另一个就返回负数,否则就返回正数
static BigInteger valueOf(long x)
返回值等于x的大整数
常用的BigDecimal 的API和上边的差不多,但是多了一个
static BigInteger valueOf(long x,int scale)
返回值为x/10的几次幂的一个大实数。