[Python-checkins] python/dist/src/Doc/lib libdecimal.tex,1.22,1.23
rhettinger at users.sourceforge.net
rhettinger at users.sourceforge.net
Thu Nov 25 05:47:14 CET 2004
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:
More information about the Python-checkins
mailing list