Money Utilities — Django Hordak 1.0 documentation

# Money Utilities

`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 be `3.33` and `6.66`, which would sum to `9.99`, thereby loosing `0.01`.

  Parameters: | amount (Decimal) – The amount to be split ratios (list[Decimal]) – The ratios that will determine the split

  Returns: list(Decimal)