![]() |
Проблема с округлением в Delphi
Суть проблемы. Вот допустим я хочу распечтать данные из таблицы в неком отчете. б.о - без округления с.о.- с округлением
Наименование Цена б.о Цена с.о. 1 759,5 760 2 151,9 152 3 110,74 111 4 203,84 204 5 252,84 253 6 232,26 232 Итого: 1711,08 руб 1712 руб. Разница в 1 рубль. Delphi при сложении и округлении дает итоговую 1711 рублей, но если просуммировать колонку со скидкой получаем 1712 рублей. Чему верить? Как избежать такой погрешности? P.S. Программа для учета и реализации товаров на складе. |
Возьми и сложи 10 раз по 0.5.
В колонке без округления получается 5 , а с округлением 10. Как ты думаешь чему верить ? |
Я чесно говоря не понял где ошибка:
В одном случае суммируются неокругленные величины - резльтат такой-то, В другом округленные - резуьтат такой-то. То что эти результаты разные это нормально. Просто надо ЗАРАНЕЕ определить что должна выводить программа. P.S. Как по мне округлять в данной ситуации можно (а нужно ли?) только конечную сумуу - суммировать неокругленные величины. |
Цитата:
|
|
Округление чисел согласно ГОСТ
Правильное, согласно ГОСТу, округление чисел
http://g-soft.nm.ru/download.htm |
Это довольно общая проблема для всех, кто пишет бухгалтерские программмы. Читал, что 1С пришлось полностью писать свои библиотеки. Я когда-то еще в DOS тоже писал специальные модули. Сравнивал первую отбрасываемую цифру с 5. Ну и ещё всякие усложнения из-за внутренних валютных цен, налогов. По налогам же свои итоги подводятся ... Выяснили тогда, что налог в строке документа печатается к сведению, а итоговый берется от итоговой суммы. Особенно неприятная возня была с дробными количествами товара :mad:
|
Часовой пояс GMT +4, время: 01:34. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.