2011-12-26 48 views
2

嗨我试图找到300^121或726^85的解决方案或像这样长的数字操作,但在输出屏幕上的netbeans我看不到大于9223372036854775807我怎么能做这些操作?Java long numeric

回答

6

看看java.lang.BigInteger课程。它可以让你处理大于Long.MAX_VALUE的整数。你可以这样做:

BigInteger huge = BigInteger.valueOf(300).pow(121); 
System.out.println("300^121 = " + huge.toString()); 
3

它与netbeans真的没有任何关系,而是它可以代表很长的最大值。一个long表示为一个有符号的64位数字,这意味着它可以上升到2^63 - 1,即9223372036854775807.在java.lang.Long中有一个常量,名为MAX_VALUE

要表示更大的数字,您需要使用BigDecimal或BigInteger。你可以尝试这样的事情:

System.out.println(new BigDecimal(300).pow(121)); 

它应该给你这个。

539103089974329363123953948852881511919442688261355331920300000000000000000000000 
000000000000000000000000000000000000000000000000000000000000000000000000000000000 
000000000000000000000000000000000000000000000000000000000000000000000000000000000 
000000000000000000000000000000000000000000000000000000000