flaskjinja2number-formatting

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


I am using Flask/Jinja2 template to show a number using |float filter.

Here is my code

{% set proc_err = nb_err|length / sum * 100 %}
({{proc_err|float}}%)

Output is a bit awkward:

17/189 (8.99470899471%)

I am looking for a way to make the places after dot limited to a number e.g. 2.

Desired output:

17/189 (8.99%)

Solution

  • 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