如何在java中处理大于BigInteger的大数字?
问题描述:
输入:如何在java中处理大于BigInteger的大数字?
BigInteger l = BigInteger.valueOf(111111111111111110);
编译器错误消息
整数数目太大
我的目标是连续地递减给定大量的直到某一值(说K)。
我该如何做到这一点?
答
整数数量太大
为什么它给了一个错误的原因是因为你已经传递到valueOf(...)
的参数类型是int
(这是除非你指定默认的类型否则),这是有限制的,并且你已经超过了这个限制,所以错误。
BigInteger l = BigInteger.valueOf(111111111111111110); // argument is int, so it will give a compiler error
改为使用long
参数。
BigInteger value = BigInteger.valueOf(111111111111111110L);
或使用string
参数。
BigInteger value = new BigInteger("111111111111111110");
+4
请用'L'来代表'long'后缀。 'L'比'l'更容易阅读,'l'可以用一些字体解释为'1'。 – Pshemo
+0
@Pshemo确定的事情。 :) –
输入如何转换为BigInteger? – kennytm
“大于BigInteger”是什么意思? –
“如何在java中处理大于BigInteger的大数?” BigInteger唯一的限制就是你的RAM。所以你的数量不可能超过BigInteger所能容纳的数量。 –