Lower / HIgher タイプの互換
lower(int) op higher(double)
2 * 0,5
2 は 2.0 に変換される
lower = higher
int num {0}; num = 100.2;
100.2はintの100に変換される
lowerからhigherは予期せぬ動作にならないが、(ならないこともないがマシ) higherからlowerは困るので、そういう時は下記のようなキャスティングを行う
#include <iostream> using namespace std; int num {10}; int count {3}; double ave {0}; ave = static_cast<double> (num) / count; cout << ave << endl;
とすると、aveは3.333...になる。 何もしないとint型の3になってしまう
ちなみに、
ave = (double)num / count
でもいけるけど、せっかくC++なので、oldスタイルをわざわざ強調する必要もないのでは。