Цитата(Мусатов Константин @ Mar 1 2007, 20:40)

Умножать и делить надо. Например, дробное количество умножить на дробную цену.
А кол-во тоже в этом же типе данных?
И кстати какая максимальная сумма возможна?
Знаковый инт64 может хранить ln(2^63)/ln(10) = 18,96488972683 десятичных разрядов.
Если в промежуточном вычислении 8 из них после запятой, то максимальная сумма будет порядка десятков миллиардов. Иначе в промежуточных вычислениях придётся использовать более широкие переменные.

В BCD есть свои плюсы.

Но есть и минусы.
Можно ещё поизвращаться, выделив на дробную часть целое число бит (типа 50.14 или 48.16), но тут другой гемор вылезет (типа 5копеек+5копеек=11копеек).

Цитата(Мусатов Константин @ Mar 1 2007, 21:10)

Цитата
А делить то точно надо??
Да. Например, может прийти сумма и количество.
ИМХО вот тут то и может вылезти весь гемор с округлениями. Цена за единицу не всегда совпадёт с исходной.