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