初級 › int同士の割り算で小数点以下が消えるバグ › パターン2
int同士の割り算で小数点以下が消えるバグ
int型同士の割り算は小数点以下を切り捨てたint型の結果になるバグです。
1 #include <iostream> 2 #include <iomanip> 3 int main() { 4 int minutes = 100; 5 double hours = minutes _______ 60; ^ 6 std::cout << std::fixed << std::setprecision(2) << hours << std::endl; 7 return 0; 8 }
出力: 1.00期待: 1.67
空欄を埋めてコンパイル・実行を通す
minutesと60はどちらもint型なので、/は整数の割り算になり小数点以下が切り捨てられます。結果はdouble型の変数に代入されても、切り捨てられたあとの値がそのまま入るだけです。
次の問題