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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.76
ITcrusader
Эксперт C++
176 / 162 / 8
Регистрация: 12.02.2013
Сообщений: 410
#1

Сравнение вещественных чисел - C++

06.03.2013, 12:27. Просмотров 2361. Ответов 3
Метки нет (Все метки)

Привет, ребят! Нужна ваша мудрость.

На днях думал о реализации класса complex<class scalar> из std и о реализации класса 3D-точек, который хавал бы при инстанцировании, подобно complex, тип скаляра (float, double...).

Возник вопрос - никак не выходит из головы: а действительна ли корректна реализация, скажем, operator== посредством сравнения координат в составе класса с помощью ==, ведь координаты представлены числом с плавающей точкой. Что-то у меня в голове переклинило и думается, что могуч был бы иной вариант сравнения - с использованием, скажем, проверки того, не превышает ли расстояние между сравниваемыми точками некоторого заданного оч. маленького числа?

Напишите, пожалуйста, свои соображения на этот счет. Может я просто переработал?

Буду благодарен за ответы
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2013, 12:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сравнение вещественных чисел (C++):

Сравнение двух вещественных чисел - C++
Почему не работает сравнение при числах: 2.85730505 2.85729861 bool isEqual( float x, float y ) { return std :: fabs( x -...

Перевод вещественных из системы в систему, сравнение вещественных - C++
Есть задача: задаются в восьмеричной системе число а, число b, число h, нужно отобразить все числа от a до b с шагом h в восьмеричном и...

Среди 5 вещественных чисел найти количество чисел, принадлежащих отрезку от -5 до 7 - C++
Написать программу которая среди 5 вещественных чисел находит кол-во чисел принадлежащих отрезку от -5 до 7

Вводится последовательность из N вещественных чисел. Определить наименьшее число, среди чисел больших 20 - C++
Вводится последовательность из N вещественных чисел. Определить наименьшее число, среди чисел больших 20. Добавлено через 53 секунды...

Дано n вещественных чисел, которые вводятся с клавиатуры. Вычислить сумму чисел, кратных 3 - C++
Помогите, пожалуйста. Дано n вещественных чисел, которые вводятся с клавиатуры. Вычислить сумму чисел, кратных 3.

Вводится последовательность из N вещественных чисел. Определить наименьшее число, среди чисел больших 20. - C++
Вводится последовательность из N вещественных чисел. Определить наименьшее число, среди чисел больших 20.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Croessmah
Эксперт CЭксперт С++
13226 / 7498 / 845
Регистрация: 27.09.2012
Сообщений: 18,416
Записей в блоге: 3
Завершенные тесты: 1
06.03.2013, 12:36 #2
Так залезьте в файл и посмотрите. Это же шаблонный класс.
0
ITcrusader
Эксперт C++
176 / 162 / 8
Регистрация: 12.02.2013
Сообщений: 410
06.03.2013, 13:13  [ТС] #3
Залез - лучше бы не лез туда, спал бы спокойнее.
Там чёрт ногу сломит, как ваще можно было написать такую жесть
в общем, не увидел ничего, что свидетельствует о каком-то особом способе сравнения на равенство.
Зато, погуглив, обнаружил такую фигню, как
C++
1
std::numeric_limits<double>::epsilon()
. Короче, теперь еще больше вопросов.
0
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
11.03.2013, 12:45 #4
Цитата Сообщение от ITcrusader Посмотреть сообщение
Залез - лучше бы не лез туда, спал бы спокойнее.
Там чёрт ногу сломит, как ваще можно было написать такую жесть
Каждый раз, когда смотрю исходники стандартной библиотеки (что gcc-шные, что мелкомягкие), у меня возникает подозрение, что они пропущены через простенький обфускатор. Потому что сильно сомневаюсь, что так испоганить (внешне) исходный код человек не мог.
Цитата Сообщение от ITcrusader Посмотреть сообщение
в общем, не увидел ничего, что свидетельствует о каком-то особом способе сравнения на равенство.
Я тоже. Странно, что для double и long double имеется явная специализация, но операторов сравнения нет (т.е. используются те, которые перегружены для обобщённого std::complex<T>).
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2013, 12:45
Привет! Вот еще темы с ответами:

Ввести целое число и набор из вещественных чисел, вывести сумму и произведение чисел из набора - C++
ввести целое число N (больше 0) и набор из N вещественных чисел вывести сумму и произведение чисел из данного набора

В последовательности вещественных чисел подсчитать произведение чисел, кратных 3 - C++
В последовательности вещественных чисел подсчитать произведение чисел, кратных 3.

Одномерный массив (Ввести массив из 10 вещественных чисел.Найти сумму чисел,стоящих на чётных местах) - C++
Ввести массив из 10 вещественных чисел.Найти сумму чисел,стоящих на чётных местах. Обьясните что делать?

Вывод чисел, стоящих на четных местах, в десятичной с.с., а чисел, стоящие на нечетных местах, как вещественных с одним знаком после запятой - C++
В файле a.txt задано 10 целых чисел в восьмеричной системе счисления. Выведите числа, стоящие на четных местах в десятичной системе...


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

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

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