def _money_formater(amount, precision, currency=''):
    """

    Formats money to be human-readable.

    :param amount: amount of money
    :type amount: ``float``, ``str`` or ``int``
    :param precision: number of place after the decimal to round to.
    :type amount: ``int``
    :param currency: A currency code to append to the result. Defaults to none ('').
    :type currency: ``str``
    :return: formated money
    :rtype: ``str``
    """
    return ('{:,.2f}'.format(round(float(amount), precision)) + ' ' + currency
        ).strip()
