我需要在 jinja2 中格式化十进制数字。
当我需要格式化日期时,我在模板中调用 strftime() 方法,如下所示:
{{ somedate.strftime('%Y-%m-%d') }}
我想知道是否有类似的方法可以对数字执行此操作。
提前致谢!
我需要在 jinja2 中格式化十进制数字。
当我需要格式化日期时,我在模板中调用 strftime() 方法,如下所示:
{{ somedate.strftime('%Y-%m-%d') }}
我想知道是否有类似的方法可以对数字执行此操作。
提前致谢!
你可以像这样简单地做到这一点,Python方式:
{{ '%04d' % 42 }}
{{ 'Number: %d' % variable }}
或使用该方法:
{{ '%d' | format(42) }}
我个人更喜欢第一个,因为它和 Python 完全一样。
我想强调 Joran Beasley 的评论,因为我发现它是最好的解决方案:
原评论:
你能不做 {{ "{0:0.2f}".format(my_num) }} 或 {{ my_num|format "%0.2f" }} (wsgiarea.pocoo.org/jinja/docs/filters.html#format ) – Joran Beasley 2012 年 10 月 1 日 21:07`
确实,{{ '{0:0.2f}'.format(100) }}
效果非常好。
这只是python字符串格式。给定第一个参数 ,{0}
使用以下格式对其进行格式化0.2f
。
您可以使用 round 它将让您将数字四舍五入到给定的精度用法是:
round(value, precision=0, method='common')
第一个参数指定精度(默认为 0),第二个参数指定舍入方法,您可以从中选择 3:
'common' rounds either up or down
'ceil' always rounds up
'floor' always rounds down
格式化和填充以相同的方式工作得很好。
{{ "{0}".format(size).rjust(15) }}