初級 › int同士の割り算で小数点以下が消えるバグ › パターン3
int同士の割り算で小数点以下が消えるバグ
int型同士の割り算は小数点以下を切り捨てたint型の結果になるバグです。
1 #include <iostream> 2 #include <iomanip> 3 int main() { 4 int price = 999; 5 int people = 4; 6 double share = price _______ people; ^ 7 std::cout << std::fixed << std::setprecision(2) << share << std::endl; 8 return 0; 9 }
出力: 249.00期待: 249.75
空欄を埋めてコンパイル・実行を通す
999 / 4は整数の割り算として計算され249になり、そのあとでdoubleに変換されます。先にdoubleへ変換してから割らなければ、小数部分は復元できません。
次の問題