diff --git a/util/format.py b/util/format.py index 1299778..43c58c9 100644 --- a/util/format.py +++ b/util/format.py @@ -50,9 +50,12 @@ def formatDate(dt=None, type='date', variant='medium', lang='de'): 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) fmt = loc.numbers.getFormatter(type) + if precision: + num = round(num, precision) # avoid zope.i18n formatting bug return fmt.format(num, pattern=pattern) diff --git a/util/format.txt b/util/format.txt index b96450a..cfab90f 100644 --- a/util/format.txt +++ b/util/format.txt @@ -15,3 +15,5 @@ Basic Formatting Functions >>> format.formatNumber(17.2) u'17,20' + >>> format.formatNumber(13399.99999997) + u'13.400,00'