Форум программистов, компьютерный форум CyberForum.ru

Проверить два числа на равенство - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
SphiNkSs
5 / 5 / 1
Регистрация: 28.03.2010
Сообщений: 143
14.04.2010, 07:47     Проверить два числа на равенство #1
Господа, программеры! Необходимо проверить число с плавающей точкой и целое число на равенство. Проблема заключается в том, что число с плавающей точкой представляются машине в виде ряда и таким образом, имеют не точное значение, а максимально приближенное. Например "1" в итоге равна не "1", а "0.9999999..."... Вот необходимо провести сравнение:
C++
1
2
3
double n;
int m;
if (n==m) {}
Может есть какие нить функции которые позволяют это делать без проблем? Неохото изобретать велосипед)...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
RAIDER_55
24 / 24 / 5
Регистрация: 04.04.2010
Сообщений: 229
14.04.2010, 09:29     Проверить два числа на равенство #2
Попробуй задать точность сравнения. И если разность между сравниваемыми числами меньше чем точность то они равны. Но это не очень хороший вариант.
Maxim Prishchepa
Эксперт С++
 Аватар для Maxim Prishchepa
1761 / 984 / 60
Регистрация: 29.03.2010
Сообщений: 2,975
14.04.2010, 09:40     Проверить два числа на равенство #3
немного через одно место, но может сработать:
C++
1
2
3
4
double n;
int m;
if(int(n+.5)==m)
{}
RAIDER_55
24 / 24 / 5
Регистрация: 04.04.2010
Сообщений: 229
14.04.2010, 09:51     Проверить два числа на равенство #4
что значит строчка (n+.5). Объясни на примере.
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
14.04.2010, 10:06     Проверить два числа на равенство #5
А почему бы просто не привести int к double?
Maxim Prishchepa
Эксперт С++
 Аватар для Maxim Prishchepa
1761 / 984 / 60
Регистрация: 29.03.2010
Сообщений: 2,975
14.04.2010, 11:49     Проверить два числа на равенство #6
Цитата Сообщение от RAIDER_55 Посмотреть сообщение
что значит строчка (n+.5). Объясни на примере.
это очень наглое округление до целого :-)
т.е. если у вас 0.9999 + 0.5 = 1.4999 приводим к целому и получаем 1
RAIDER_55
24 / 24 / 5
Регистрация: 04.04.2010
Сообщений: 229
14.04.2010, 12:17     Проверить два числа на равенство #7
интересно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2010, 15:22     Проверить два числа на равенство
Еще ссылки по теме:

Даны два целых числа: A, B. Проверить истинность высказывания: «Каждое из чисел A и B нечетное» C++
C++ Даны два числа X и Y проверить истинность того что оба числа четные
C++ Даны два числа X и Y проверить истинность

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
SphiNkSs
5 / 5 / 1
Регистрация: 28.03.2010
Сообщений: 143
14.04.2010, 15:22  [ТС]     Проверить два числа на равенство #8
Решил использовать точность сравнения... Для решения моей задачи подходит)...
Yandex
Объявления
14.04.2010, 15:22     Проверить два числа на равенство
Ответ Создать тему
Опции темы

Текущее время: 12:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru