さて、数値は整数と少数の2種類であることは自明ですね?
では、整数と少数を混在させて計算した場合、一体どうなるのでしょうか?
今回は敢えて説明する前に、どうなるのか予想してみて下さい。
想14:整数と少数を混在させて計算した場合、返される値は整数でしょうか? 少数でしょうか?
今回の問題は正解することが目標ではありません。自分で理論を考えることに意味があるのです。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
double Answer = 5 / 2;
この計算を行うと、Answerの値は2になります。
なぜなら、5 / 2の答えは整数の世界では、2余り1だからです。
今、左辺値は確かに少数型ですが、計算そのものは整数型で行っているので、返却される値は整数型です。(5 / 2という方程式が返す値は整数型)
一方、
double Answer = 5 / 2.0;
この場合、Answerの値は2.5になります。
整数÷少数の計算をした場合、少数型へ合わせられます。
なぜなら、整数も少数の範囲だからです。
つまり、少数{整数}ということです。

問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を使用しなさい。
では、整数と少数を混在させて計算した場合、一体どうなるのでしょうか?
今回は敢えて説明する前に、どうなるのか予想してみて下さい。
想14:整数と少数を混在させて計算した場合、返される値は整数でしょうか? 少数でしょうか?
今回の問題は正解することが目標ではありません。自分で理論を考えることに意味があるのです。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
double Answer = 5 / 2;
この計算を行うと、Answerの値は2になります。
なぜなら、5 / 2の答えは整数の世界では、2余り1だからです。
今、左辺値は確かに少数型ですが、計算そのものは整数型で行っているので、返却される値は整数型です。(5 / 2という方程式が返す値は整数型)
一方、
double Answer = 5 / 2.0;
この場合、Answerの値は2.5になります。
整数÷少数の計算をした場合、少数型へ合わせられます。
なぜなら、整数も少数の範囲だからです。
つまり、少数{整数}ということです。

問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を使用しなさい。