int/long bug in locale?
tkpmep at hotmail.com
tkpmep at hotmail.com
Tue Aug 28 10:03:29 EDT 2007
To pretty up some numbers stored as strings, I used locale to format
them with commas. I then found the following error:
>>> import locale
>>>locale.setlocale(locale.LC_ALL, 'English_United States.1252')
'English_United States.1252'
>>> locale.format('%d', float('2244012500.0000'), grouping = True)
Traceback (most recent call last):
File "<pyshell#28>", line 1, in <module>
locale.format('%d', float('2244012500.0000'), grouping = True)
File "C:\Python25\lib\locale.py", line 145, in format
formatted = percent % value
TypeError: int argument required
However, if the number is <= 2**31-1, it works just fine:
>>>locale.format('%d', float('224401250.0000'), grouping = True)
'224,401,250'
Interestingly, if I first convert the floats to ints, , the function
works just fine, even if the numbers exceed 2**31-1:
>>> locale.format('%d', int(float('2244012500.0000')), grouping = True)
'2,244,012,500'
Is there an int/long related bug lurking in locale?
Sincerely
Thomas Philips
More information about the Python-list
mailing list