Изменение представления и точности чисел в 810
Добавлено: 18 янв 2008, 09:59
Проблема при переходе на версию 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
В версии 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