round value before formatting in order to avoid zope.i18n formatter bug

This commit is contained in:
Helmut Merz 2014-01-02 17:30:57 +01:00
parent 452dc0290f
commit 5ba1f5cbdd
2 changed files with 6 additions and 1 deletions

View file

@ -50,9 +50,12 @@ def formatDate(dt=None, type='date', variant='medium', lang='de'):
return fmt.format(dt or datetime.now()) return fmt.format(dt or datetime.now())
def formatNumber(num, type='decimal', lang='de', pattern=u'#,##0.00;-#,##0.00'): def formatNumber(num, type='decimal', lang='de',
pattern=u'#,##0.00;-#,##0.00', precision=2):
loc = locales.getLocale(lang) loc = locales.getLocale(lang)
fmt = loc.numbers.getFormatter(type) fmt = loc.numbers.getFormatter(type)
if precision:
num = round(num, precision) # avoid zope.i18n formatting bug
return fmt.format(num, pattern=pattern) return fmt.format(num, pattern=pattern)

View file

@ -15,3 +15,5 @@ Basic Formatting Functions
>>> format.formatNumber(17.2) >>> format.formatNumber(17.2)
u'17,20' u'17,20'
>>> format.formatNumber(13399.99999997)
u'13.400,00'