Здравствуйте, 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;
так правильно? просто пытаюсь разобрать этот вопрос.