#include <cmath>
bool is_integer(float k)
{
return std::floor(k) == k;
}
Это решение должно работать для всех возможных значений k
.Я почти уверен, что это тот случай, когда вы можете безопасно сравнивать числа с плавающей запятой, используя ==
.
. Попробуйте вдумчиво назвать функции.integer
не дает никакого представления о том, что на самом деле делает , поэтому я изменил имя функции на что-то более значимое.
В будущем, тестирование числа на целое должно почувствуйте как очень простую операцию, поэтому у вас должно быть сильное ощущение, что лучшее решение будет очень простым.Надеюсь, вы понимаете, что ваше оригинальное решение абсурдно по многим причинам (главная причина: в большинстве случаев это приведет к переполнению стека).