Re[4]: операция сравнение
От: awqez  
Дата: 26.12.12 15:31
Оценка:
Здравствуйте, nen777w, Вы писали:

N>>>Тысячу раз уже тут жевали тему о том как нужно сравнивать double и float числа.

N>>>Кратоко говоря нужно вычесть одно из другого, взять абсолютное значение и сравнить "<=" с некоторой допустимой величиной погрешности (epsilon).

A>>вычесть — понял.

A>>взять абсолютное значение — понял.
A>>сравнить некоторой допустимой величиной погрешности (epsilon) — не понял.
A>>объясните если не трудно
A>>дело в том если сделать только < или > а не (>=, <=) то по моему работает точно(хотя я не весь массив проверил).

N>Ну так я как раз о проверке на равенство говорил.

N>
N>bool is_equal(double a, double b, double epsilon = 0.0001)
N>{
N>   return fabs(a-b) <= epsilon;
N>}
N>


я что-то не понял что возвращает разложил

float x1 = a - b;// или абсолютные?
x1 = fabs(x1);
bool x2 = (x1 <= epsilon);
return x2;

так правильно? просто пытаюсь разобрать этот вопрос.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.