diff options
-rw-r--r-- | Lib/locale.py | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/Lib/locale.py b/Lib/locale.py index 401c712..ac272e7 100644 --- a/Lib/locale.py +++ b/Lib/locale.py @@ -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) |