大数

在基本的整数和浮点数精度不能够满足需求,那么可以使用两个类,BigInteger和BigDecimal。这两个类可以处理包含任意长度数字序列的数值。BigInteger类实现任意精度的整数运算,BigDecimal实现任意精度的浮点数运算。

使用静态的valueOf方法可以将普通的数值转换为大数,但是数值范围还是在int的数值范围内:

BigInteger a = BigInteger.valueOf(44545648);

对于更大的数,可以使用一个带字符串参数的构造器,类似与C++课程学习中的以字符的形式用String数组保存大数:

BigInteger a = new BigInteger("216548489151153648946515549846516848");

另外,在进行大数的运算时,需要使用大数类中的add和multiply方法

BigInteger c = a.add(b);	//c = a+b
BigInteger d = c.multiply(b.add(BigInteger.valueOf(2)));	//d = c*(b+2)
大数大数 零度灬音符 发布了1 篇原创文章 · 获赞 0 · 访问量 34 私信 关注
上一篇:大数乘法 - Karatsuba算法


下一篇:类型强制转换