猫をだまして飛んで行く。

雑記ブログです。主にプログラミング・資格・読書等をポコポコ投稿をしたいと思います。文章を書くこと自体に慣れていないのでダメだしも歓迎です。

1/256 画面に文字を出力

初めてプログラムを扱うときの定番中の定番。

画面に文字を表示を行ってます。

 

今回表示させたい文字はこちら。

「宣誓! 我々は、スポーツマンシップにのっとり正々堂々、256本のノックを受けることを誓います」

 

 

まず、表示結果から。Eclipseのコンソール画面から抜粋。

 

f:id:shionsamidare-0211:20180205061729p:plain

【ソース】

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);

 

実行すると、エラーが発生します。

f:id:shionsamidare-0211:20180205063248p:plain

 

【エラーメッセージ】

宣誓! 我々は、スポーツマンシップにのっとり
正々堂々、Exception in thread "main" java.util.IllegalFormatConversionException: d != java.lang.Double

 

エラー内容は、ざっくりいうと、型の相違です。

調べてみると、書式子が異なるため発生するエラーとのこと。

 

%dが、int型の結果を出力をするため、Numberをdouble型に変えたことで、型の相違が発生し、エラーが起こったようです。

そのため、書式子をdouble型を表す%f に変えると、エラーが除去されます。

結果も整数値256ではなく、256.000000になっていることがわかります。

 

f:id:shionsamidare-0211:20180205064057p:plain

 

 

備忘録

書式子がなにかわからないため宿題。