• 締切済み

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 個

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.4

べき乗 Math.pow(a,b) … a^b も使えます

  • yeslets
  • ベストアンサー率31% (47/151)
回答No.3

(1)「\65307は不正な文字です」 \65307というのは全角セミコロンに割り当てられているUNICODEですね。 セミコロンを半角にしてください。 (2)num1を初期化していません セミコロンを半角にしても、「num1が初期化されていない」というコンパイルエラーが出ます。 num1に何かを代入してください。 (3)ハットマークはべき乗ではありません べき乗の計算をしたいのだと思いますが、 ハットマーク(^)はビット演算子なので、 num1*10^302は(num1*10)と302のビットごとのXORを計算してしまいます。結果は330になります。

  • gimmick
  • ベストアンサー率49% (134/270)
回答No.2

10の302乗のような表記をしたい場合は指数表記を使います。 コンパイルエラーについては#1の指摘されているとおりです。 public class Enzanshi {   public static void main(String[] args) {     double num = 1e302;     System.out.println(num);   } }

noname#16216
noname#16216
回答No.1

上記に貼り付けられているプログラムが、貼り付けミスかどうか不明ですが、 1. public static main(String args[]) { 戻り値が宣言されていません。 public static void main(String args[]) { void を指定してください。 2. int num1; 3. double num = num1*10^302; セミコロンが全角文字ではありませんか? 半角でなければコンパイルエラーになります。

関連するQ&A