How to use float filter to show just two digits after decimal point? How to use float filter to show just two digits after decimal point? flask flask

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 down
  • ceil always rounds up
  • floor 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


Here is one approach ::

{{ "%.2f"|format(result) }}

Tweak it as you like :)