Necesito el formato de los números decimales en jinja2.

Cuando me necesita para dar formato a las fechas, yo llame a la strftime() método en mi plantilla, como este:

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

Me pregunto si hay un enfoque similar para hacerlo a través de los números.

Gracias de antemano!

InformationsquelleAutor Lucas | 2012-10-01

4 Comentarios

  1. 63

    Usted puede hacer esto simplemente como este, el de Python manera:

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

    O el uso de ese método:

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

    Yo personalmente prefiero la primera, ya que es exactamente igual que en Python.

    • la cept que el método de cadena de formato, se deprecia y debe evitarse cuando sea posible (supongo … o algo así…)
    • docs.python.org/release/3.0.1/whatsnew/2.6.html#pep-3101
    • cualquiera de los dos casos no se desestima en la última versión 2.7 en GAE y en el próximo par de años que no veo ninguno de los planes de Google para cambiar a la versión 3.0.. va a tomar algún tiempo 🙂
    • Estoy de acuerdo sólo me he metido flak para el uso de dicho método en lugar de el otro método … acabo de mencionar … no estaba diciendo que su respuesta fue mal en absoluto(al menos eso no es lo que quiero decir)…
    • Eres adecuado para el nuevo formato, aunque.. y estoy totalmente de odio 🙁
  2. 34

    Quiero destacar Joran Beasley comentario porque me parece la mejor solución:

    Comentario Original:

    puede no hacer {{ «{0:0.2 f}».formato(my_num) }} o {{ my_num|formato «%0.2 f» }} (wsgiarea.pocoo.org/jinja/docs/filters.html#format) – Joran Beasley Oct 1 ’12 a las 21:07`

    De hecho, {{ '{0:0.2f}'.format(100) }} funciona fantásticamente.

    Esto es sólo python formato de cadena. Dado que el primer argumento, {0}, formato con el siguiente formato 0.2f.

  3. 10

    Usted podría utilizar la ronda te permitirá redondear el número a una determinada precisión
    el uso es:

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

    El primer parámetro especifica la precisión (el valor predeterminado es 0), el segundo el método de redondeo a partir de la cual usted puede elegir 3:

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

Dejar respuesta

Please enter your comment!
Please enter your name here