さて、数値は整数と少数の2種類であることは自明ですね?

では、整数と少数を混在させて計算した場合、一体どうなるのでしょうか?

今回は敢えて説明する前に、どうなるのか予想してみて下さい。

想14:整数と少数を混在させて計算した場合、返される値は整数でしょうか? 少数でしょうか?

今回の問題は正解することが目標ではありません。自分で理論を考えることに意味があるのです。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

double Answer = 5 / 2;
この計算を行うと、Answerの値は2になります。
なぜなら、5 / 2の答えは整数の世界では、2余り1だからです。
今、左辺値は確かに少数型ですが、計算そのものは整数型で行っているので、返却される値は整数型です。(5 / 2という方程式が返す値は整数型)

一方、
double Answer = 5 / 2.0;

この場合、Answerの値は2.5になります。
整数÷少数の計算をした場合、少数型へ合わせられます。
なぜなら、整数も少数の範囲だからです。

つまり、少数{整数}ということです。
50


問15:double Answer = 5.0 ÷ 2の計算結果はなんでしょうか?


補足なのですが、整数と少数を混在させる計算をする場合、計算結果を格納する変数は、少数型にして下さい。

もし整数型に結果を格納する場合、計算結果は必ず整数になります。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
それでは整数と少数を混在させた計算の練習をしてみましょう。

問16:double 型の変数Answerへ 20 ÷ 3.0 の計算結果を代入し、printfにて変数Answerの値を表示するプログラムを書いて下さい。


問17:double 型の変数Answerへ -3.3 ÷ 3 の計算結果を代入し、printfにて変数Answerの値を表示するプログラムを書いて下さい。


難18:int 型の変数Answerへ、7.0 / 2の計算結果を代入し、printfにて変数Answerの値を表示するプログラムを書きなさい。


この一連の自動的な型変換を、暗黙の型変換と呼びます。
暗黙の型変換とは、コンパイラが計算上の都合で自動的に型を変換することです。
つまりプログラマは、暗黙の型変換も計算に入れてコーディング(記述)しなければなりません。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
暗黙の型変換とは違い、明示的な型変換もあります。キャスト演算子を使えば、型変換を明示的に行えます。

キャストを行うには、(変換したい型)を変数の前に付けるだけです。

例えば、double Number = 10.5; をint型へキャストするには、(int)Number;と記述すればよいです。

但し!

キャストは演算子です。即ち、演算の結果として型変換された値が返却されるのです。

ということは、返却される値を保存しておく必要があります。

Number = (int)Number; このように記述すれば、Numberを明示的に型変換した値をNumberへ保存することができます。

問19:次のコードを実行すると、画面にはなんと表示されるでしょう?



難20:double Number = 11.1; という変数を宣言し、printfにてNumberの値を表示しなさい。但し、フォーマット指定子には%dを使用しなさい。