IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   Проблема с округлением в Delphi (http://www.imho.ws/showthread.php?t=108767)

PakMan 25.09.2006 15:29

Проблема с округлением в 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. Программа для учета и реализации товаров на складе.

crawler 25.09.2006 15:52

Возьми и сложи 10 раз по 0.5.
В колонке без округления получается 5 , а с округлением 10.
Как ты думаешь чему верить ?

Willow 25.09.2006 23:39

Я чесно говоря не понял где ошибка:
В одном случае суммируются неокругленные величины - резльтат такой-то,
В другом округленные - резуьтат такой-то. То что эти результаты разные это нормально. Просто надо ЗАРАНЕЕ определить что должна выводить программа.

P.S. Как по мне округлять в данной ситуации можно (а нужно ли?) только конечную сумуу - суммировать неокругленные величины.

AndNot 27.09.2006 01:41

Цитата:

PakMan:
Чему верить? Как избежать такой погрешности?
P.S. Программа для учета и реализации товаров на складе.
Дело в том, что сам формат вещественных чисел подразумевает погрешность, поэтому я делал проще. Деньги хранил в копейках. А при выводе соответственно переводил в рубли. Но! Не используй вещественный формат, иначе возможны случаи "недочета", храни в целочисленном QWORD. Если скорость не устраивает то для перевода в рубли можно и асм заюзать, это несложно.

Blacky 29.09.2006 17:25

Учим матчасть:
http://www.delphikingdom.com/asp/vie...?catalogid=374
http://www.delphikingdom.com/asp/vie...catalogid=1217

syserg 26.01.2009 03:02

Округление чисел согласно ГОСТ
 
Правильное, согласно ГОСТу, округление чисел
http://g-soft.nm.ru/download.htm

leon534 26.01.2009 17:00

Это довольно общая проблема для всех, кто пишет бухгалтерские программмы. Читал, что 1С пришлось полностью писать свои библиотеки. Я когда-то еще в DOS тоже писал специальные модули. Сравнивал первую отбрасываемую цифру с 5. Ну и ещё всякие усложнения из-за внутренних валютных цен, налогов. По налогам же свои итоги подводятся ... Выяснили тогда, что налог в строке документа печатается к сведению, а итоговый берется от итоговой суммы. Особенно неприятная возня была с дробными количествами товара :mad:


Часовой пояс GMT +4, время: 01:34.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.