■ 今回取り扱うコード
今回は、以下のコードを取り扱います。
ご自身が用意した環境に、以下のコードをコピーするだけで実行することができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
//少数の足し算を表示する System.out.println("27.8+22.2は"+(27.8+22.2)+"です。"); //少数の引き算を表示する System.out.println("64.2-14.7は"+(64.2-14.7)+"です。"); //少数の掛け算を表示する System.out.println("13.3*3は"+(13.3*3)+"です。"); //少数の割り算を表示する System.out.println("25.0/2は"+(25.0/2)+"です。"); /* *補足コード */ //少数の掛け算を表示する(桁を調整する) System.out.println("13.3*3は"+String.format("%.1f", (13.3*3))+"です。"); |
■ サンプルコード全文
サンプルコード全文は以下です。
■ 出力結果
今回のプログラムを実行した際の出力結果は、下記です。
1 2 3 4 5 6 7 |
27.8+22.2は50.0です。 64.2-14.7は49.5です。 13.3*3は39.900000000000006です。 25.0/2は12.5です。 13.3*3は39.9です。 |
■ サンプルコードの説明
少数の計算
整数で四則演算が確認できたら、今度は少数の四則演算を行ってみましょう。細かな計算を行う際には、少数で計算を求めることも必要です。下記が今回使用したコードの一部です。
1 2 3 4 |
//少数の足し算を表示する System.out.println("27.8+22.2は"+(27.8+22.2)+"です。"); |
単純に説明をすると、少数で計算を書くと、計算結果も少数になります。なにか特別なプログラムを書いたりする必要はなく、小数点を含んだ式を記載してあげるだけで、結果も少数になるのです。
掛け算の計算結果について
今回のサンプルコードでは、注意すべき箇所があります。それは、少数の掛け算を行っているサンプルコードです。他のコードと同様に、少数で掛け算を行っていますが、その出力結果を御覧ください。
1 2 3 4 |
//少数の掛け算を表示する System.out.println("13.3*3は"+(13.3*3)+"です。"); |
下記のように、実際には異なる計算結果になっていることが分かるかと思います。想定以上に桁が続いています。
1 2 3 |
13.3*3は39.900000000000006です。 |
プログラミングには、「誤差」と呼ばれるものがあります。詳しくは、専門書などをご覧頂きたいところですが、正しく表現できないと次に進めませんので、回避コードも紹介しておこうと思います。サンプルコードの最後に、補足コードとして、「誤差」が発生していない一つの例をあわせて記載しました。
1 2 3 4 5 6 7 |
/* *補足コード */ //少数の掛け算を表示する(桁を調整する) System.out.println("13.3*3は"+String.format("%.1f", (13.3*3))+"です。"); |
上記のコードの場合だと、下に示すように正確に掛け算の結果が表現されています。
1 2 3 |
13.3*3は39.9です。 |
具体的には、下記のコードの少数の箇所(かっこで囲んである数値の部分)に置き換えて使用してください。このコードの意味は、今後の記事の中で紹介していければと思います。もちろん、このタイミングで、著名な参考書を手にとって見るのもいいかもしれません。
1 2 3 |
String.format("%.1f", (13.3*3)) |
小さな見落としが動作不良につながってしまう
プログラミングを続けていると、上述したように、正しく計算を行っているつもりでも、うまく動かない場合があります。そのために、何時間も費やしてしまうこともあります。
細かく文字として表示をし、間違っていないか確認をしつつ進めていくことも、早くプログラミングを上達させるコツとなります。慣れるまで時間がかかるかもしれませんが、少しずつ理解していきましょう。