Мне нужна функция floor с синтаксисом
int floor(double x);
но std::floor возвращает a double. Является
static_cast <int> (std::floor(x));
гарантированно даст мне правильное целое число, или я могу решить проблему отдельно? Кажется, это работает, но я хотел бы точно знать.
Для бонусных очков, почему черт std::floor возвращает a double в первую очередь?