python/dist/src/Doc/lib libdecimal.tex,1.22,1.23
Update of /cvsroot/python/python/dist/src/Doc/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23982 Modified Files: libdecimal.tex Log Message: Make sure the money formatting recipe can doesn't run out of digits to the right of the decimal point. Index: libdecimal.tex =================================================================== RCS file: /cvsroot/python/python/dist/src/Doc/lib/libdecimal.tex,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- libdecimal.tex 24 Nov 2004 05:53:26 -0000 1.22 +++ libdecimal.tex 25 Nov 2004 04:47:09 -0000 1.23 @@ -979,12 +979,12 @@ places: required number of places after the decimal point curr: optional currency symbol before the sign (may be blank) - sep: optional grouping separator (comma, period, or blank) + sep: optional grouping separator (comma, period, space, or blank) dp: decimal point indicator (comma or period) only specify as blank when places is zero - pos: optional sign for positive numbers: "+", space or blank - neg: optional sign for negative numbers: "-", "(", space or blank - trailneg:optional trailing minus indicator: "-", ")", space or blank + pos: optional sign for positive numbers: '+', space or blank + neg: optional sign for negative numbers: '-', '(', space or blank + trailneg:optional trailing minus indicator: '-', ')', space or blank >>> d = Decimal('-1234567.8901') >>> moneyfmt(d, curr='$') @@ -993,19 +993,25 @@ '1.234.568-' >>> moneyfmt(d, curr='$', neg='(', trailneg=')') '($1,234,567.89)' - >>> moneyfmt(Decimal(123456)) - '123,456.00' - + >>> moneyfmt(Decimal(123456789), sep=' ') + '123 456 789.00' + >>> moneyfmt(Decimal('-0.02'), neg='<', trailneg='>') + '<.02>' + """ q = Decimal((0, (1,), -places)) # 2 places --> '0.01' sign, digits, exp = value.quantize(q).as_tuple() + assert exp == -places result = [] digits = map(str, digits) build, next = result.append, digits.pop if sign: build(trailneg) for i in range(places): - build(next()) + if digits: + build(next()) + else: + build('0') build(dp) i = 0 while digits:
participants (1)
-
rhettingerīŧ users.sourceforge.net