我正在使用 Flask/Jinja2 模板来使用
|float
过滤器显示数字。
这是我的代码
{% 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 问题 70
您可以使用
round
将 float
格式化为给定精度。
摘自文档:
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
这是一种方法::
{{ "%.2f"|format(result) }}
随心所欲地调整它:)
可以在 Jinja2 中使用
'{:.2f}'.format()
方法。
{{'{:.2f}'.format(value|float)}}
(我假设您使用 Ionic v2)
使用这个前端代码:
<div *ngIf="device.usage > 0">
{{ Round(device.usage)}} min
</div>
并将以下函数放入.ts文件中:
Round(number):number
{
return parseFloat(Number((number/1000) / 60).toFixed(2));
}