Разница между функциями round() и floor() в C++ заключается в том, как они округляют число:
- round() выполняет математически правильное округление к ближайшему целому, при этом половинные значения округляются в сторону от нуля. 25
- floor() округляет в сторону меньшего, вычисляя ближайшее целое число, меньшее или равное аргументу, и возвращая его в виде числа с плавающей точкой. 14 Например, выражение std::floor(2.5) возвращает 2.0, а std::floor(-2.5) — число -3.0 (дробная часть округляется до нуля). 1
Таким образом, round() округляет в сторону ближайшего целого, а floor() — в сторону ближайшего целого, меньшего или равного аргументу. 14