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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
SphiNkSs
5 / 5 / 1
Регистрация: 28.03.2010
Сообщений: 143
#1

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

14.04.2010, 07:47. Просмотров 1379. Ответов 7
Метки нет (Все метки)

Господа, программеры! Необходимо проверить число с плавающей точкой и целое число на равенство. Проблема заключается в том, что число с плавающей точкой представляются машине в виде ряда и таким образом, имеют не точное значение, а максимально приближенное. Например "1" в итоге равна не "1", а "0.9999999..."... Вот необходимо провести сравнение:
C++
1
2
3
double n;
int m;
if (n==m) {}
Может есть какие нить функции которые позволяют это делать без проблем? Неохото изобретать велосипед)...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2010, 07:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверить два числа на равенство (C++):

Проверить на равенство два числа типа double - C++
Здравствуйте. Подскажите, пожалуйста, как можно сравнить два числа типа double. Одно из них - результат деления, а второе - ввод из...

даны два треугольника по заданному признаку проверить их равенство - C++
(3 стороны, 2 стороны и угол,сторона и 2 угл) Через цыкл for

Даны два числа X и Y проверить истинность того что оба числа четные - C++
1. Даны два числа X и Y проверить истинность того что оба числа четные. Проверку на четность вынести в отдельную функцию.

Даны два целых числа: A, B. Проверить истинность высказывания: «Числа A и B имеют одинаковую четность» - C++
Скоро экзамен , кто чем может ) Помоги ближнему , ибо смех продлевает жизнь...) 6. Даны два целых числа: A, B. Проверить...

Даны два числа X и Y проверить истинность - C++
Здравствуйте, срочно нужна помощь, и прошу не пишите сложными командами а простыми Даны два числа X и Y проверить истинность того что оба...

Проверить пароль, а затем ввести два целых числа - C++
Написать прогр на языке C++ с применением оператора for, которая проверяет пароль юзера, а затем позволяет юзеру ввести два целых числа M и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
RAIDER_55
24 / 24 / 5
Регистрация: 04.04.2010
Сообщений: 229
14.04.2010, 09:29 #2
Попробуй задать точность сравнения. И если разность между сравниваемыми числами меньше чем точность то они равны. Но это не очень хороший вариант.
1
Maxim Prishchepa
Эксперт С++
1922 / 1034 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
14.04.2010, 09:40 #3
немного через одно место, но может сработать:
C++
1
2
3
4
double n;
int m;
if(int(n+.5)==m)
{}
0
RAIDER_55
24 / 24 / 5
Регистрация: 04.04.2010
Сообщений: 229
14.04.2010, 09:51 #4
что значит строчка (n+.5). Объясни на примере.
0
fasked
Эксперт С++
4936 / 2516 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
14.04.2010, 10:06 #5
А почему бы просто не привести int к double?
1
Maxim Prishchepa
Эксперт С++
1922 / 1034 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
14.04.2010, 11:49 #6
Цитата Сообщение от RAIDER_55 Посмотреть сообщение
что значит строчка (n+.5). Объясни на примере.
это очень наглое округление до целого :-)
т.е. если у вас 0.9999 + 0.5 = 1.4999 приводим к целому и получаем 1
0
RAIDER_55
24 / 24 / 5
Регистрация: 04.04.2010
Сообщений: 229
14.04.2010, 12:17 #7
интересно
0
SphiNkSs
5 / 5 / 1
Регистрация: 28.03.2010
Сообщений: 143
14.04.2010, 15:22  [ТС] #8
Решил использовать точность сравнения... Для решения моей задачи подходит)...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2010, 15:22
Привет! Вот еще темы с ответами:

Ввести два произвольные числа их сумму и проверить правильно ли введена сумма - C++
Вот условие задания (+ фотография): "Составить программу, которая предлагает ввести два произвольные числа и их сумму, а потом...

проверить равенство (C++) - C++
Заданы матрицы A(3,3) и B(3,3). Проверить, является ли произведение матриц перестановочным, т.е. проверить равенство A×В=В×А. В случае...

Проверить, что из введённых чисел x, y, z только два числа равны между собой - C++
Не использую оператора if, присвоить переменной значение t значение 0, если из введённых чисел x,y,z только два числа равны между собой, и...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
14.04.2010, 15:22
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru