Re[2]: Сравнение float
От: Andir Россия
Дата: 02.09.04 00:48
Оценка:
Здравствуйте, artgonch, Вы писали:

A>
A>        if (fabs(m_f1 - f) < delta)
A>            DeleteRecord(i);
A>

A>Использую VS.NET 2002. Фугкция DeleteRecord() не вызыввется даже когда разность меньше погрешности. В чем может быть причина?

Наверное в том, что модуль разности больше погрешности ...

С Уважением, Andir!
using(RSDN@Home 1.1.4 beta 2){/* Работаем! */}
Re[3]: Сравнение float
От: artgonch  
Дата: 02.09.04 06:47
Оценка:
Здравствуйте, Andir, Вы писали:

A>Здравствуйте, artgonch, Вы писали:


A>>
A>>        if (fabs(m_f1 - f) < delta)
A>>            DeleteRecord(i);
A>>

A>>Использую VS.NET 2002. Фугкция DeleteRecord() не вызыввется даже когда разность меньше погрешности. В чем может быть причина?

A>Наверное в том, что модуль разности больше погрешности ...


А вот слона-то я и не заметиол. Спасибо.
A>С Уважением, Andir!
С уважением, Артем
Re[10]: Сравнение float
От: Sir Wiz Россия  
Дата: 03.09.04 10:38
Оценка:
Здравствуйте, Sergey, Вы писали:

S> Не, не так прямолинейно. "Банковское округление" — это, например (есть, вроде бы, несколько способов) когда 1.05 -> 1.1,

S>а 2.05 -> 2.0. Если сумма цифр четная и последняя цифра — пятерка, округляем в одну сторону, нечетная — в другую. Ошибка не накапливается, если числа можно считать случайными.

Обратил внимание, что именно так округляет printf. Например, при формате %.1f. Во всяком случае на VC++ 6.0
... << RSDN@Home 1.1.4 @@subversion >>
Re[5]: Сравнение float
От: jazzer Россия Skype: enerjazzer
Дата: 03.09.04 17:15
Оценка:
Здравствуйте, Kaa, Вы писали:

Kaa>Когда — "тогда". Отождествляются только чиса с первыми тремя разрядами. В твоем примере это не так. Разряды различаются. Так, напимер, можно сравнивать деньги: целые — рубли, дробные — копейки. Без большой точности. Это, ты считаешь, не реальная задача? ;-))


нереальная

если нужны рубли и копейки, то все считается в целых числах в копейках, без всяких округлений
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[9]: Сравнение float
От: jazzer Россия Skype: enerjazzer
Дата: 03.09.04 17:20
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Банковское округление — это...


банковское округление — это такая штука, по которой можно книжку написать :)

есть миллион ситуаций, и каждой соответствует свой алгоритм округления.
потому что проблема обычно не в том, как округлить, а в том, что делать с остатком от округления.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[10]: Сравнение float
От: Шахтер Интернет  
Дата: 03.09.04 17:28
Оценка: +1 :)
Здравствуйте, jazzer, Вы писали:

J>Здравствуйте, Кодт, Вы писали:


К>>Банковское округление — это...


J>банковское округление — это такая штука, по которой можно книжку написать


J>есть миллион ситуаций, и каждой соответствует свой алгоритм округления.

J>потому что проблема обычно не в том, как округлить, а в том, что делать с остатком от округления.

Отправить на счёт программисту.
... << RSDN@Home 1.1.0 stable >>
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[11]: Сравнение float
От: Sir Wiz Россия  
Дата: 04.09.04 06:33
Оценка:
Здравствуйте, Шахтер, Вы писали:

J>>есть миллион ситуаций, и каждой соответствует свой алгоритм округления.

J>>потому что проблема обычно не в том, как округлить, а в том, что делать с остатком от округления.

Ш>Отправить на счёт программисту.


Накопительный. Копить на лечение отбитых почек.
... << RSDN@Home 1.1.4 @@subversion >>
Re[6]: Сравнение float
От: Sir Wiz Россия  
Дата: 04.09.04 06:34
Оценка:
Здравствуйте, jazzer, Вы писали:

J>если нужны рубли и копейки, то все считается в целых числах в копейках, без всяких округлений


Начисление процентов?
... << RSDN@Home 1.1.4 @@subversion >>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.