imho.ws |
![]() |
![]() |
![]() |
# 1 |
Junior Member
Регистрация: 22.04.2004
Адрес: Мурманск
Сообщения: 59
![]() |
Проблема с округлением в 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. Программа для учета и реализации товаров на складе. |
![]() |
![]() |
# 3 |
Junior Member
Регистрация: 23.12.2003
Адрес: Киев
Сообщения: 118
![]() ![]() ![]() ![]() |
Я чесно говоря не понял где ошибка:
В одном случае суммируются неокругленные величины - резльтат такой-то, В другом округленные - резуьтат такой-то. То что эти результаты разные это нормально. Просто надо ЗАРАНЕЕ определить что должна выводить программа. P.S. Как по мне округлять в данной ситуации можно (а нужно ли?) только конечную сумуу - суммировать неокругленные величины. |
![]() |
![]() |
# 4 | |
Guest
Сообщения: n/a
|
Цитата:
|
|
![]() |
# 6 |
Guest
Сообщения: n/a
|
Округление чисел согласно ГОСТ
Правильное, согласно ГОСТу, округление чисел
http://g-soft.nm.ru/download.htm |
![]() |
# 7 |
::VIP::
Регистрация: 10.07.2004
Адрес: Москва
Пол: Male
Сообщения: 2 030
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Это довольно общая проблема для всех, кто пишет бухгалтерские программмы. Читал, что 1С пришлось полностью писать свои библиотеки. Я когда-то еще в DOS тоже писал специальные модули. Сравнивал первую отбрасываемую цифру с 5. Ну и ещё всякие усложнения из-за внутренних валютных цен, налогов. По налогам же свои итоги подводятся ... Выяснили тогда, что налог в строке документа печатается к сведению, а итоговый берется от итоговой суммы. Особенно неприятная возня была с дробными количествами товара
![]() |
![]() |