1/256 画面に文字を出力
初めてプログラムを扱うときの定番中の定番。
画面に文字を表示を行ってます。
今回表示させたい文字はこちら。
「宣誓! 我々は、スポーツマンシップにのっとり正々堂々、256本のノックを受けることを誓います」
まず、表示結果から。Eclipseのコンソール画面から抜粋。
【ソース】
public class OutLine {
public static void main(String[] a00) {
int Number = (int)Math.pow(2, 8);
System.out.println("宣誓! 我々は、スポーツマンシップにのっとり");
System.out.printf("正々堂々、%d本のノックを受けることを誓います。", Number);
}
}
int Number に型変換して、powで計算したべき乗の結果を入れて、画面に出力をしています。
次に、3行目を変えて型をdoubleに変えてみます。
double Number = Math.pow(2, 8);
実行すると、エラーが発生します。
【エラーメッセージ】
宣誓! 我々は、スポーツマンシップにのっとり
正々堂々、Exception in thread "main" java.util.IllegalFormatConversionException: d != java.lang.Double
エラー内容は、ざっくりいうと、型の相違です。
調べてみると、書式子が異なるため発生するエラーとのこと。
%dが、int型の結果を出力をするため、Numberをdouble型に変えたことで、型の相違が発生し、エラーが起こったようです。
そのため、書式子をdouble型を表す%f に変えると、エラーが除去されます。
結果も整数値256ではなく、256.000000になっていることがわかります。
備忘録
書式子がなにかわからないため宿題。