- 締切済み
10の302乗の計算またはDoubeのキャストについて教えて下さい。
java言語で質問があります。よろしくお願い致します。 次のプログラムを作成し、2点質問をさせて下さい。 まずは10の302乗を計算したいときとキャストを調べたところdouble型はできないのでどう対処すればいいでしょうか。どうぞアドバイス下さい。class Enzanshi{ public static main(String args[]){ int num1; double num = num1*10^302; } } エラー内容はこうです。 C:\java>javac Enzanshi.java Enzanshi.java:2: メソッドの宣言が不正です。戻り値の型が必要です。 public static main(String args[]){ ^ Enzanshi.java:3: \65307 は不正な文字です。 int num1; ^ Enzanshi.java:4: \65307 は不正な文字です。 double num = num1*10^302; ^ エラー 3 個
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
べき乗 Math.pow(a,b) … a^b も使えます
- yeslets
- ベストアンサー率31% (47/151)
(1)「\65307は不正な文字です」 \65307というのは全角セミコロンに割り当てられているUNICODEですね。 セミコロンを半角にしてください。 (2)num1を初期化していません セミコロンを半角にしても、「num1が初期化されていない」というコンパイルエラーが出ます。 num1に何かを代入してください。 (3)ハットマークはべき乗ではありません べき乗の計算をしたいのだと思いますが、 ハットマーク(^)はビット演算子なので、 num1*10^302は(num1*10)と302のビットごとのXORを計算してしまいます。結果は330になります。
- gimmick
- ベストアンサー率49% (134/270)
10の302乗のような表記をしたい場合は指数表記を使います。 コンパイルエラーについては#1の指摘されているとおりです。 public class Enzanshi { public static void main(String[] args) { double num = 1e302; System.out.println(num); } }
上記に貼り付けられているプログラムが、貼り付けミスかどうか不明ですが、 1. public static main(String args[]) { 戻り値が宣言されていません。 public static void main(String args[]) { void を指定してください。 2. int num1; 3. double num = num1*10^302; セミコロンが全角文字ではありませんか? 半角でなければコンパイルエラーになります。