Concatenated numerical literals

Larry Bates lbates at swamisoft.com
Mon Mar 1 11:43:13 EST 2004


I took a function that I wrote to format floats with
commas and currency symbol and hacked it a little to make
it work with your spaces.  You should be able to take it
and with little modifications make it work for you.

-Larry

def fmt_currency(amount):
    import types, string
    '''
    This function will take the number passed to it and format it as US
    Currency with floating $ sign, comma separators and two decimal places
    '''
    thousands_sep=" "
    currency="$"
    #
    # Check to see if I got a number or a string
    #
    if type(amount) == types.StringType:
        #
        # Check to see if I got an empty string, return $0.00
        #
        if amount == '': amount=0
        else: amount=string.atof(amount)

    temp="%.2f" % amount
    outstring=temp[len(temp)-4:]
    if len(temp)==4: return currency+outstring
    digits=list(temp[0:len(temp)-4])
    digits.reverse()
    #print digits
    cpos=1
    for c in digits:
        outstring=c+outstring
        cpos=cpos+1
        if cpos%3 == 0: outstring=thousands_sep+outstring
    #
    # Check to see if comma is first character of the formatted string
    # if it is strip it off.
    #
    if outstring.startswith(thousands_sep): outstring=outstring[1:]
    return currency+outstring

if __name__=="__main__":
    print fmt_currency(0.12)
    print fmt_currency(123.45)
    print fmt_currency(123456789.01)


"Per Erik Stendahl" <berra at psyket.com> wrote in message
news:mailman.18.1078154586.22701.python-list at python.org...
> Hi,
>
> I wish I could write large integers (and floats, etc) like
> this in Python:
>
>      10 000 000
>
> Kind of the same way I can write string literals today.
> (As in 'This' 'is' 'one' 'string'.)
>
> Has there been any discussion on this? I find myself wishing
> for this at least once a week, since it really helps readability.
> It doesn't seem like a big implementation either.
>
> Any comments?
>
> Regards,
> Per Erik Stendahl,
> Uppsala, Sweden
>





More information about the Python-list mailing list