Просто наличие .
как части числа идентифицирует его как тип с плавающей запятой.
This:
cout << (5 / 2) << endl;
cout << (5. / 2) << endl;
cout << (5.0 / 2) << endl;
Печатает это:
2
2.5
2.5
Вы можете видеть, что в первой строке используется целочисленное деление (поскольку оба значения являются целыми числами), тогда как 5.
и 5.0
оба идентифицируются как типы с плавающей запятой, и поэтому они запускают "нормальное деление".