如果基本的证书和浮点数精度不能满足需求,那么可以使用java.math
包中的两个类:BigInteger、BigDecimal。
这两个类可以处理包含任意长度数字序列的数值。BigInteger类实现任意精度的整数运算,BigDecimal类实现任意精度的浮点数运算。
例如:
public static void main(String[] args) {
BigInteger bigInteger = new BigInteger("123456789987654321123456789");
System.out.println("BigInteger:"+bigInteger);
BigDecimal bigDecimal = new BigDecimal("12345678998.7654321123456789");
System.out.println("BigDecimal:"+bigDecimal);
}
使用静态的valueOf()
方法可以将普通的数值转换为大数。
BigInteger n = BigInteger.valueOf(10000);
但是,我们熟悉的 “+ - * / ”算数运算符不能处理大数,而要适应大数类提供的add()、substract()、multiply()、divide()
方法。
例如:
public static void main(String[] args) {
BigInteger a = new BigInteger("123456789");
BigInteger b = new BigInteger("987654321");
System.out.println("a = " + a);
System.out.println("b = " + b);
BigInteger c = a.add(b); //c = a + b
System.out.println("a + b = " + c);
BigInteger d = a.multiply(b.add(c)); //d = a * (b + c)
System.out.println("a * (b + c) = " + d);
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_43598687/article/details/124248186
内容来源于网络,如有侵权,请联系作者删除!