In format(), consider sign only after grouping.
Suggested by Kevin Jacobs in bug report #129417.
This commit is contained in:
parent
08dabf0a73
commit
db786876b6
|
@ -115,17 +115,22 @@ def format(f,val,grouping=0):
|
|||
"""Formats a value in the same way that the % formatting would use,
|
||||
but takes the current locale into account.
|
||||
Grouping is applied if the third parameter is true."""
|
||||
result = f % val
|
||||
fields = string.split(result, ".")
|
||||
result = f % abs(val)
|
||||
fields = result.split(".")
|
||||
if grouping:
|
||||
fields[0]=_group(fields[0])
|
||||
if len(fields)==2:
|
||||
return fields[0]+localeconv()['decimal_point']+fields[1]
|
||||
res = fields[0]+localeconv()['decimal_point']+fields[1]
|
||||
elif len(fields)==1:
|
||||
return fields[0]
|
||||
res = fields[0]
|
||||
else:
|
||||
raise Error, "Too many decimal points in result string"
|
||||
|
||||
if val < 0:
|
||||
return '-'+res
|
||||
else:
|
||||
return res
|
||||
|
||||
def str(val):
|
||||
"""Convert float to integer, taking the locale into account."""
|
||||
return format("%.12g",val)
|
||||
|
|
Loading…
Reference in New Issue