2011-12-26 46 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