2017-07-28 6 views
1

さて、私は二日前にJavaの学習を始めました。私はJava SEとNetbeans 8.0.2を使用していますが、例外的に基本的なアプリケーションをいくつか作成しました。しかし、私は32-64ビットの数値( "long")の平方根を求めようとしていますが、エラーが発生し続けます。私は間違って何をしていますか?"long"の平方根を計算できないのはなぜですか? (幼児プログラマー)

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が2つのパラメータのみを受け入れることです。このソリューションは、単純に長いものから長いものにキャストすることです。それが問題に貢献できるよう

Math.sqrt((double)number); 

は同様にそのように、長い正式に、あなたの長い変数に追加されませんでしたサフィックスlまたはL.で終わります。

+3

この行 'number = 2500000000;'は問題の原因ですので、OPに言及することをお勧めします。また、 'long'から' double'にキャストする必要はありません。これは明示的なキャストを必要とせずに行われます。 –

+0

ありがとう!それはLの欠如だった。ダムの質問に申し訳ない、私は自分自身を教えていると私はそれが接頭辞が必要であることを認識していない。 –

+0

問題ありません!私はいつものような速い問題を抱えています。私は数カ月間Javaをやっています。コーディングjava:Pをお楽しみください – Rigidity

関連する問題