From: Martin v. Löwis Date: Sun, 21 Jan 2001 18:52:33 +0000 (+0000) Subject: In format(), consider sign only after grouping. X-Git-Tag: v2.1a1~66 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=db786876b6c5ab24c1cd7427fd077545dbb72fee;p=thirdparty%2FPython%2Fcpython.git In format(), consider sign only after grouping. Suggested by Kevin Jacobs in bug report #129417. --- diff --git a/Lib/locale.py b/Lib/locale.py index 401c712104aa..ac272e769efb 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)