[Oo-discuss] Ошибка в вычислениях.

Eugene Saenko caspar-s на mail.ru
Чт Июл 9 20:25:11 MSD 2009


awk wrote:
> есть две ячейки. в них числа 47 723,75 и 47 587,47
> 
> а вот разница этих двух чисел по мнению Calc не 136,28
> как может показаться начинающему математику, а 136,279999999999000
> 
> пример в аттаче.
> 
> ЭТО ОЧЕНЬ КРИТИЧНАЯ ОШИБКА!
> т.к. сравнения чисел, полученных от таких вычислений и работа с ними, 
> приводит к совершенно непредсказуемым результатам.

Это проблема отдельно взятой программы (в данном случае Calc), а 
представления чисел с плавающей точкой в компьютере. Точное 
представление таких чисел В ПРИНЦИПЕ невозможно. и грамотная организация 
процесса вычислений и сравнения таких чисел -- забота программиста (в 
данном случае -- того, кто составляет электронную таблицу).

-- 
С уважением,
Евгений Саенко



Подробная информация о списке рассылки Oo-discuss