導入
int と double が混ざった計算では、型の扱いに注意が必要です。意図的に型を変えるキャストを覚えましょう。
説明
レッスン5で見たとおり、int どうしの割り算は切り捨てられます。小数で計算したいときは、片方を double に変換します。(double) を前に付けるのが C スタイルのキャストです。
#include <iostream>
using namespace std;
int main() {
int a = 7, b = 2;
cout << a / b << endl; // 3(整数割り算)
cout << (double)a / b << endl; // 3.5(a を double に変換してから割る)
return 0;
}
逆に、小数を整数にすると小数部分が切り捨てられます。
#include <iostream>
using namespace std;
int main() {
double price = 3.9;
int rounded = (int)price; // 3(切り捨て)
cout << rounded << endl;
// 平均点を小数で出す例
int total = 250, count = 3;
cout << (double)total / count << endl; // 83.3333
return 0;
}
型変換を意識すると、「なぜか小数が出ない」といった C++ 特有のつまずきを避けられます。
やってみよう
(double) を付けたり外したりして、結果が 3 と 3.5 で変わることを確かめましょう。(int) で小数が切り捨てられることも試してください。
演習
int total = 17, count = 4; の平均を、(double) を使って小数で表示してください(結果は 4.25)。
ヒント1を見る
cout << (double)total / count << endl;。