2012-06-29 22 views

Respuesta

48

resulta ser bastante simple:

Mi código:

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

¿Se puede cambiar un poco con:

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

o usando formato:

({{'%0.2f'| format(proc_err|float)}}%) 

de referencia se puede encontrar aquí en jinja2 github issue 70

34

Puede utilizar round dar formato a un float con una precisión determinada.

extraído de the docs:

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

Ronda el número en una determinada precisión. El primer parámetro especifica la precisión (por defecto es 0), el segundo el método de redondeo:

  • common rondas arriba o hacia abajo
  • ceil siempre redondea hasta
  • floor siempre redondea hacia abajo

Si no especifica un método, se usa common.

{{ 42.55|round }} 
    -> 43.0 
{{ 42.55|round(1, 'floor') }} 
    -> 42.5 

Tenga en cuenta que incluso si redondea al 0 precisión, se devuelve un float. Si necesita un número entero de bienes, canalizarla a través de int:

{{ 42.55|round|int }} 
    -> 43 
+0

Esto debe ser marcada como la respuesta correcta – bcattle

+0

Excepto que 'redonda (2)' no devolverá '42 .00 'alguna vez, incluso si tiene que serializar un valor' Decimal() '. – lol

+0

@ lol, la pregunta es sobre el redondeo no formateado. Incluso si el OP quería el formateo. Imprimir decimales también se refiere a las configuraciones regionales. Redondear es una operación matemática mientras que imprimir un valor formateado es solo visual. Sin embargo, en la pregunta OP es mejor imprimir 100% que 100.00%;) –

-2

(estoy suponiendo que se utiliza para iónico v2)

Usar este código front-end:

<div *ngIf="device.usage > 0"> 
    {{ Round(device.usage)}} min 
</div> 

y poner la siguiente función en el.ts archivo:

Round(number):number 
{ 
    return parseFloat(Number((number/1000)/60).toFixed(2)); 
} 
0

Aquí es uno de los enfoques ::

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

modificarlo a su gusto :)

Cuestiones relacionadas