如何使用浮点过滤器仅显示小数点后两位数字?

问题描述 投票:0回答:5

我正在使用 Flask/Jinja2 模板来使用

|float
过滤器显示数字。

这是我的代码

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

输出有点尴尬:

17/189 (8.99470899471%)

我正在寻找一种方法将点后的位置限制为数字,例如2.

所需输出:

17/189 (8.99%)
flask jinja2 number-formatting
5个回答
104
投票

事情变得非常简单:

我的代码:

{% 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


89
投票

您可以使用

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

40
投票

这是一种方法::

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

随心所欲地调整它:)


0
投票

可以在 Jinja2 中使用

'{:.2f}'.format()
方法。

{{'{:.2f}'.format(value|float)}}

-4
投票

(我假设您使用 Ionic v2)

使用这个前端代码:

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

并将以下函数放入.ts文件中:

Round(number):number
{
    return parseFloat(Number((number/1000) / 60).toFixed(2)); 
}
© www.soinside.com 2019 - 2024. All rights reserved.