The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Помогите! Как избавится от ошибок вычислений процессора?"
Отправлено AlexRoot, 03-Мрт-05 15:36 
Возникла огромная проблемма. При выполнении математических вычислений, например, деления одного числа на другое, процессоры допускают ошибки. Например:
double a=1.00000;
double b=2.00000;
double c=0.00000;
c=a/b;
c=?
Часто с=0.50000000000, как и должно быть. Но часто и не равно 0.5000000, а c=0.500000001 или c=0.4999999999999. В этом и есть страшная проблемма. Пробовал писать функции для округления - не получается! В этих функциях при тоже допускаются ошибки!
Далее при сравнении этой переменной "с" с константами программа работает не корректно. Например:
...
if (c>0.50000)
    a=b;
else
    a=c;
....
Считаем, что с=0.5, и вроде все должно быть нормально. А в реальности (при работе с дебагером) с не всегда равно 0.5 а равно или 0.500000001 или 0.499999999! В случае, если с=0.49999999 программа работает не так как хотелось бы. Ужас!
Пожалуйста, подскажите как с этим справлсяться?

С уважением, Александр.

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру