|
|
#31 |
|
Участник
|
Да нет, же, mazzy, речь то о другом.
Ну и пусть вы храните числа в базе в округленном до n знаков после запятой виде. Это уменьшит число проблем связанных с данным глюком, но ни в коей мере не избавит от них. Посмотрите на следующий код - числа a и b совершенно целые, НЕ ДРОБНЫЕ И НЕ БОЛЬШИЕ, но ошибка (именно ошибка, а не тривиальная неточность округления в вещественной арифметике) происходит не при сохранении или извлечении из/в базу, а по ходу промежуточных вычислений над совершенно безобидными числами!!! PHP код:
(Изначально так и было написано что числа 9999.9999.... получены в результате вычислений, но не извлечены из базы) Операция деления становится совершенно небезопасной, т.к. может сгенерировать нам периодическую дробь из совершенно нормальных, округленных чисел, которая в свою очередь становится небезопасной при суммировании с другими периодическими дробями! Это же просто капец какой то.
|
|
|
| Теги |
| баг, математика, округление |
|
|
Похожие темы
|
||||
| Тема | Ответов | |||
| Абстрактный классификатор | 52 | |||
| Здравствуйте дети! :) - еще одна ошибка | 11 | |||
| Просмотр SQL запросов к БД с помощью файла Log | 3 | |||
| Виртуальные поля | 6 | |||
|