J'ai besoin de formater des nombres décimaux en jinja2.
Lorsque j'ai besoin de formater des dates, j'appelle la méthode strftime () dans mon modèle, comme ceci:
{{ somedate.strftime('%Y-%m-%d') }}
Je me demande s'il existe une approche similaire pour ce faire sur les chiffres.
Merci d'avance!
Vous pouvez le faire simplement comme ceci, la manière Python:
{{ '%04d' % 42 }}
{{ 'Number: %d' % variable }}
Ou en utilisant cette méthode:
{{ '%d' | format(42) }}
Personnellement, je préfère le premier car c'est exactement comme en Python.
Je veux souligner le commentaire de Joran Beasley parce que je trouve que c'est la meilleure solution:
Commentaire original:
ne pouvez-vous pas faire {{"{0: 0.2f}". format (my_num)}} ou {{my_num | format "% 0.2f"}} (wsgiarea.pocoo.org/jinja/docs/filters.html#format ) - Joran Beasley 1er octobre '12 à 21:07 '
En effet, {{ '{0:0.2f}'.format(100) }}
fonctionne de façon fantastique.
C'est juste python formatage de chaîne. Étant donné le premier argument, {0}
, formatez-le au format suivant 0.2f
.
Vous pouvez utiliser l'arrondi pour vous permettre d'arrondir le nombre à une précision d'utilisation donnée:
round(value, precision=0, method='common')
Le premier paramètre spécifie la précision (la valeur par défaut est 0), le second la méthode d'arrondi parmi laquelle vous pouvez choisir 3:
'common' rounds either up or down
'ceil' always rounds up
'floor' always rounds down
Le formatage et le remplissage fonctionnent bien de la même manière.
{{ "{0}".format(size).rjust(15) }}