2012-06-29 10 views

risposta

48

risulta essere abbastanza semplice:

Il mio codice:

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

Può essere cambiato un po 'con:

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

o utilizzando formato:

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

di riferimento può essere trovato qui su jinja2 github issue 70

34

È possibile utilizzare round per formattare un float ad un dato di precisione.

estratto da the docs:

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

rotonda il numero ad un dato di precisione. Il primo parametro specifica la precisione (default è 0), secondo il metodo di arrotondamento:

  • common giri sia su o giù
  • ceil arrotonda sempre
  • floor arrotonda sempre giù

Se non si specifica un metodo, viene utilizzato common.

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

noti che anche se arrotondato al 0 precisione, viene restituito un float. Se avete bisogno di un intero reale, tubo attraverso int:

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

Questo dovrebbe essere contrassegnato come la risposta corretta – bcattle

+0

Solo che 'round (2)' non restituirà mai '42 .00 ', anche se devi serializzare un valore 'Decimal()'. – lol

+0

@lol la domanda riguarda l'arrotondamento e non la formattazione. Anche se l'OP voleva la formattazione. La stampa dei decimali riguarda anche le impostazioni locali. Arrotondare è un'operazione matematica mentre la stampa di un valore formattato è solo visiva. Nella domanda OP, tuttavia, è meglio stampare 100% rispetto al 100,00%;) –

-2

(sto supponendo che si utilizza per ionico v2)

Usa questo codice front-end:

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

e mettere la seguente funzione nel.File ts:

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

Ecco un approccio ::

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

Ottimizzalo come ti piace :)

Problemi correlati