Задать вопрос
@nait123321

Как проверить чётность числа с плавающей запятой?

Здравствуйте, как на языке С проверить чётность числа с плавающей запятой?
x%2==0 - не работает.
  • Вопрос задан
  • 11797 просмотров
Подписаться 2 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 6
@mletov
Чётность в теории чисел — характеристика целого числа
(Википедия)
Ответ написан
opium
@opium
Просто люблю качественно работать
Ну приведите к целому если не дробное
Ответ написан
Комментировать
ImmortalCAT
@ImmortalCAT
C# loving
эм
а если до множить до целого числа
и x%2==0
будет ли работать?)
ПЫСЫ
можно сделать так
var myvar = 124124,2541;
var strmyvar = myvar as string;
var in = strmyvar[strmyvar.Count-1];
bool result = in%2==0;

долгий код, но его можно сократить :)
всего лишь взять ласт цифру и по ней судить о её кратности
Ответ написан
Olej
@Olej
инженер, программист, преподаватель
Вещественное число не может быть чётным или нечётным. Вещественное число - это всегда приближённое значение (хотя бы поэтому, его остаток от деления на 2 всегда будет не нулевой).
Ответ написан
Mrrl
@Mrrl
Заводчик кардиганов
double y=x/2;
  bool isEven=(fabs(y-round(y)) < EPS);
Ответ написан
Комментировать
@Aenigma
Из контекста следует, что речь идёт о целых числах, представленных в вещественном формате. Если так, тогда переводить в целое число, как выше советовали, - это не универсальный метод, поскольку число может выходить за пределы разрядной сетки целого типа. Проверять нужно следующим образом:
0.5*x==round(0.5*x)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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