How to use float filter to show just two digits after decimal point?
It turns to be quite simple:
My code:
{% set proc_err = nb_err|length / sum * 100 %}({{proc_err|float}}%)
Can be changed a bit with:
{% set proc_err = nb_err|length / sum * 100 %}({{'%0.2f' % proc_err|float}}%)
or using format:
({{'%0.2f'| format(proc_err|float)}}%)
Reference can be found here on jinja2 github issue 70
You can use round
to format a float
to a given precision.
Extracted from the docs:
round(value, precision=0, method='common')
Round the number to a given precision. The first parameter specifies the precision (default is 0
), the second the rounding method:
common
rounds either up or downceil
always rounds upfloor
always rounds down
If you don’t specify a method common
is used.
{{ 42.55|round }} -> 43.0{{ 42.55|round(1, 'floor') }} -> 42.5
Note that even if rounded to 0
precision, a float
is returned. If you need a real integer, pipe it through int
:
{{ 42.55|round|int }} -> 43