Проверка, является ли число целым числом в C / C ++ (без scanf / gets / etc)

Как вы говорите, вам нужно показать код. : -)

Ошибка переполнения стека обычно происходит, когда ваша функция вызывает слишком много гнезд. См. Поток «Переполнение потока стека» для некоторых примеров того, как это происходит (хотя в случае этого вопроса ответы преднамеренно вызывают переполнение стека).

-2
задан Daniel B 13 July 2018 в 21:02
поделиться

1 ответ

Используйте floor

#include <cmath>

if (floor(n) == n)
    // n is an integer (mathematically speaking)
0
ответ дан john 17 August 2018 в 12:09
поделиться
  • 1
    Не буду работать 16777216.9f – Eugene Sh. 13 July 2018 в 21:06
  • 2
    Хотя это может быть «математически корректным», с двойной реализацией это не всегда будет правильным ( вот пример ) – scohe001 13 July 2018 в 21:06
  • 3
    Функция python, которую отправил @Daniel B, проверяет тип, а не значение. Хотя, будь то программная проверка типов, даже имеет смысл в C, это еще один вопрос ... – Ben Jones 13 July 2018 в 21:09
  • 4
    @ scohe001 Вы, например, не демонстрируете проблему the . Это больше, чтобы продемонстрировать неточность операций fp. – Eugene Sh. 13 July 2018 в 21:16
  • 5
    – scohe001 13 July 2018 в 21:23
Другие вопросы по тегам:

Похожие вопросы: