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