Money Utilities¶
Ratio Split¶
-
hordak.utilities.money.
ratio_split
(amount, ratios)¶ Split in_value according to the ratios specified in ratios
This is special in that it ensures the returned values always sum to in_value (i.e. we avoid losses or gains due to rounding errors). As a result, this method returns a list of Decimal values with length equal to that of ratios.
Examples
>>> from hordak.utilities.money import ratio_split >>> from decimal import Decimal >>> ratio_split(Decimal('10'), [Decimal('1'), Decimal('2')]) [Decimal('3.33'), Decimal('6.67')]
Note the returned values sum to the original input of
10
. If we were to do this calculation in a naive fashion then the returned values would likely be3.33
and6.66
, which would sum to9.99
, thereby loosing0.01
.Parameters: - amount (Decimal) – The amount to be split
- ratios (list[Decimal]) – The ratios that will determine the split
Returns: list(Decimal)