日期:2014-05-20  浏览次数:20733 次

请教关于BigInteger的问题
今天看书,学到了大数值类BigInteger 书上说他可以表示超级长的整数
但是我在写代码的时候,却提示长度范围超标,请教各位大神这是什么情况。
import java.math.BigInteger;
public class test1 {
public static void main(String[] args) {
    BigInteger test=BigInteger.valueOf(100000000000000000000);
   
}
}
结果提示:The literal 100000000000000000000 of type int is out of range 
是我初始化一个大数值错误了吗?求教~
------解决方案--------------------
BigInteger.valueOf(long a);
BigInteger的valueOf方法的参数是long类型,你输入的数字应该超过java里long的范围了,而且大数值类BigInteger 一般是通过其构造函数来转换类型的,常用这个:
BigInteger(String val)
Translates the decimal String representation of a BigInteger into a BigInteger.

所以你直接写成: BigInteger test=new BigIntege("100000000000000000000");就OK了。注意构造函数的参数是String类型。