Отвечу всем отреагировавшим в одном письме:

Андрей Черепанов пишет:

ЭТО ОЧЕНЬ КРИТИЧНАЯ ОШИБКА!
т.к. сравнения чисел, полученных от таких вычислений и работа с ними,
приводит к совершенно непредсказуемым результатам.

Версия 3.0.0 (Build 9358) от Инфра-ресурс.
Да, проблема имеет место быть. Поместил баг в багзиллу (немного поправил цифры): http://www.openoffice.org/issues/show_bug.cgi?id=103445

Да. Они там уже закрыли по причине дубликата.

В Экселе 2003 действительно есть такое же. Но в более раннем - этого не было. Потому как прошлую ошибку я обнаружил именно _только_ в Опенофисе.

Я провел эксперимент с числами. заметил следующую закономерность - погрешность набегает только у чисел, которые расположены друг от друга на определенном расстояния на числовом ряду.
Пример:
5000,7 и 5100,4 - погрешность есть.
5000,7 и 5200,4 - погрешности нет.

500000,7 и 510000,4 - погрешность есть.
500000,7 и 520000,4 - погрешности нет.

50000000,7 и 51000000,4 - погрешность есть.
50000000,7 и 52000000,4 - погрешности нет.

т.е. погрешность начинает наблюдаться при сближении чисел на числовой оси ближе чем 10% (в знаках). Если числа сближать, то погрешность проявляется.

Далее:
Утверждать, что это забота человека, заполняющего таблицу, я бы не стал. Т.к. никто, я уверен, не задумывается об этом и не знает про эту "особенность".

Я обходил это в старой версии опенофиса, когда меня прижало, но согласитесь, что использовать функцию округления в каждой ячейке, где нужно проводить сравнение - не очень рационально и эстетично.

Я знаю про операции с плавающей точкой. Но насколько я знаю из теории программирования - есть правило = результат должен быть расчитан с точностью не более, чем максимальная точность оперируемых чисел.

---
awk
_______________________________________________
Oo-discuss mailing list
Oo-discuss@openoffice.ru
https://lists.openoffice.ru/mailman/listinfo/oo-discuss

Ответить