我使用Flask/Jinja2模板來顯示一個數字,使用| float過濾器。如何使用float filter在小數點後顯示兩位數?
這裏是我的代碼
{% set proc_err = nb_err|length/sum * 100 %}
({{proc_err|float}}%)
輸出是一個有點尷尬:
17/189 (8.99470899471%)
我正在尋找一種方法,使一個點之後的名額限制在一個數量例如2.
所需的輸出:
17/189 (8.99%)
我使用Flask/Jinja2模板來顯示一個數字,使用| float過濾器。如何使用float filter在小數點後顯示兩位數?
這裏是我的代碼
{% set proc_err = nb_err|length/sum * 100 %}
({{proc_err|float}}%)
輸出是一個有點尷尬:
17/189 (8.99470899471%)
我正在尋找一種方法,使一個點之後的名額限制在一個數量例如2.
所需的輸出:
17/189 (8.99%)
原來是相當簡單:
我的代碼:
{% set proc_err = nb_err|length/sum * 100 %}
({{proc_err|float}}%)
可以修改一下有:
{% set proc_err = nb_err|length/sum * 100 %}
({{'%0.2f' % proc_err|float}}%)
或使用格式:
({{'%0.2f'| format(proc_err|float)}}%)
參考可以在這裏找到在jinja2 github issue 70
您可以使用round
到float
格式化給定精度。
從the docs提取:
round(value, precision=0, method='common')
回合的數目給定的精度。第一個參數指定的精度(默認爲0
),第二個的舍入方法:
common
輪向上或向下ceil
總是向上舍floor
總是下舍如果您未指定使用common
的方法。
{{ 42.55|round }}
-> 43.0
{{ 42.55|round(1, 'floor') }}
-> 42.5
請注意,即使四捨五入到0
精度,則返回float
。如果你需要一個真正的整數,它管道int
:
{{ 42.55|round|int }}
-> 43
(我假設你使用離子V2)
使用此前端代碼:
<div *ngIf="device.usage > 0">
{{ Round(device.usage)}} min
</div>
,並把以下功能進入。TS文件:
Round(number):number
{
return parseFloat(Number((number/1000)/60).toFixed(2));
}
這裏有一個方法::
{{ "%.2f"|format(result) }}
調整它,只要你喜歡:)
這應該被標記爲正確答案 – bcattle
除了'輪(2)'即使你必須序列化一個「Decimal()」值,也不會返回'42.00'。 – lol
@lol這個問題是關於舍入不格式。即使OP想要格式化。打印小數點還會處理語言環境。舍入是一種數學運算,而打印格式化值只是視覺效果。在OP問題中,雖然打印100%比100.00%更好;) –