Изменение представления и точности чисел в 810

ПНР и сопровождение

Модераторы: m0p3e, edward_K, Модераторы

Ответить
san
Местный житель
Сообщения: 412
Зарегистрирован: 28 апр 2005, 11:34
Откуда: Галактика Млечный Путь

Изменение представления и точности чисел в 810

Сообщение san »

Проблема при переходе на версию 810 связанная с изменением представления и точности чисел.
В версии 712 в базе данных числа хранятся в представлении float. В результате математических расчетов числа имеют большое количество знаков после запятой.
Пример позиции складского ордера:
Кол-во: 0.47
Цена: 19067.79787234043
Сумма: round(0.47*19067.79787234043,2)=8961.87

При переходе на версию 810, цена и сумма по позиции ордера изменились. Соответственно изменилось сальдо оборотной ведомости по складам.
В первую очередь это связано с тем, что в версии 810 в базе данных числа хранятся в представлении decimal 24.8 (8 знаков после запятой).
Кол-во: 0.47
Цена:19067.79787234
Сумма: round(0.47*19067.79787234,2)= 8961.86

Считаю, что преобразование чисел таким способом недопустимо.
Сумма, полученная по формуле round(кол-во*цена,2) не должна меняться . Допустимый вариант преобразования.
Пример:
Старая цена: 19067.79787234043 -> Новая цена: 19067.79787235
Результат:
Кол-во: 0.47
Цена: 19067.79787235
Сумма: round(0.47*19067.79787235,2)=8961.87
maikl
Местный житель
Сообщения: 1503
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Тверь

Сообщение maikl »

У нас такая проблема возникла при переходе с 5.8502 на 8.00
Ответить