Russian Qt Forum
Март 29, 2024, 09:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Сравнение чисел с плавающей точкой  (Прочитано 2653 раз)
Nidxogg
Гость
« : Март 27, 2015, 20:01 »

Подскажите пожалуйста, можно ли как-то сравнить 2 числа с плавающей точкой с точностью до какого-то знака?
Или отсечь все лишнее после какого-то знака.
Записан
_Bers
Бывалый
*****
Offline Offline

Сообщений: 486


Просмотр профиля
« Ответ #1 : Март 27, 2015, 21:35 »


Код:
// laxity  - погрешность

if( a-b< laxity )
    std::cout<<"можно считать что a и b равны\n";
else
    std::cout<<"a != b\n";
Записан
fdfsdfgjfh
Гость
« Ответ #2 : Март 27, 2015, 21:54 »

я всегда сравниваю так:
Код:
if ( fabs ( a - b ) < DBL_EPSILON )
    std::cout<< "equal"<< std::endl;
else
    std::cout<< "not equal"<< std::endl;
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Март 28, 2015, 07:32 »

Подскажите пожалуйста, можно ли как-то сравнить 2 числа с плавающей точкой с точностью до какого-то знака?
Или отсечь все лишнее после какого-то знака.
Посмотрите qFuzzyCompare. Смысл в том что "какой-то знак" не фиксирован. Т.е. для больших чисел допускается бОльшая погрешность и наоборот
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 22.