[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