Is there a direct approach to format numbers in jinja2?

隐身守侯 提交于 2019-12-18 10:54:24

问题


I need to format decimal numbers in jinja2.

When I need to format dates, I call the strftime() method in my template, like this:

{{ somedate.strftime('%Y-%m-%d') }}

I wonder if there is a similar approach to do this over numbers.

Thanks in advance!


回答1:


You can do it simply like this, the Python way:

{{ '%04d' % 42 }}

{{ 'Number: %d' % variable }}

Or using that method:

{{ '%d' | format(42) }}

I personally prefer the first one since it's exactly like in Python.




回答2:


I want to highlight Joran Beasley's comment because I find it the best solution:

Original comment:

can you not do {{ "{0:0.2f}".format(my_num) }} or {{ my_num|format "%0.2f" }} (wsgiarea.pocoo.org/jinja/docs/filters.html#format) – Joran Beasley Oct 1 '12 at 21:07`

Indeed, {{ '{0:0.2f}'.format(100) }} works fantastically.

This is just python string formatting. Given the first argument, {0}, format it with the following format 0.2f.




回答3:


You could use round it will let you round the number to a given precision usage is:

 round(value, precision=0, method='common')

The first parameter specifies the precision (default is 0), the second the rounding method from which you can choose 3:

'common' rounds either up or down
'ceil' always rounds up
'floor' always rounds down



回答4:


Formatting and padding works well in the same way.

{{ "{0}".format(size).rjust(15) }}


来源:https://stackoverflow.com/questions/12681036/is-there-a-direct-approach-to-format-numbers-in-jinja2

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!