2017-07-28 41 views
1

好的,所以我剛剛開始學習Java兩天前。我正在使用Java SE和Netbeans 8.0.2,並且已經編寫了一些非常基本的應用程序。但是,我試圖找到一個32-64位數字(一個「長」)的平方根,我不斷收到錯誤。我究竟做錯了什麼?爲什麼我無法計算「長」的平方根? (幼兒程序員)

class Root { 
    public static void main(String[] arguements) { 
     long number; 
     number = 2500000000; 
     System.out.println("The square root of " 
       + number 
       + " is " 
       + Math.sqrt(number) 
     ); 
    } 
} 
+7

請包括您作爲問題的一部分獲得的任何錯誤。 – azurefrog

+5

這就是說,你得到一個錯誤,因爲'2500000000'不是一個很長的時間,這是一個超出範圍的int。 '2500000000L'是一個長。 – azurefrog

+0

如果您有提示或可以指出那些可以幫助我自行解決問題的資源。這也不勝感激 –

回答

1

一個可能的問題是,Math.sqrt只接受雙參數。解決方案只是簡單地將其從長轉換爲雙轉。

Math.sqrt((double)number); 

除了是,長正式與未添加到您的長變量後綴l或L.結束,這樣可能有助於問題。

+3

這行'number = 2500000000;'是問題的原因,所以我建議提一下OP。另外,你不需要從「長」到「雙」。這是在沒有明確演員需求的情況下完成的。 –

+0

非常感謝!這是缺乏一個L.對於愚蠢的問題對不起,我正在教我自己,我沒有意識到它需要一個前綴。 –

+0

沒問題!我也一直有這樣的快速問題,而且我現在已經在做java幾個月了。享受java編碼:P – Rigidity