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

Flask 如何使用浮点过滤器仅显示小数点后的两位数字?,flask,wsgi,jinja2,Flask,Wsgi,Jinja2,我正在使用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

我正在使用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)}}%)

可以在此处找到参考资料您可以使用
round
float
格式化为给定精度

摘自:

round(值,精度=0,方法='common')

将数字四舍五入到给定的精度。第一个参数指定精度(默认值为
0
),第二个参数指定舍入方法:

  • common
    向上或向下取整
  • ceil
    始终向上取整
  • 楼层
    始终向下舍入
如果未指定方法,则使用
通用

{{ 42.55|round }}
    -> 43.0
{{ 42.55|round(1, 'floor') }}
    -> 42.5
请注意,即使四舍五入到
0
精度,也会返回一个
float
。如果您需要一个实整数,请通过管道将其传递到
int

{{ 42.55|round|int }}
    -> 43
(我假设您使用Ionic v2)

使用此前端代码:

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

这里有一种方法:

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

可以随意调整:)

除非
round(2)
永远不会返回'42.00',即使您必须序列化
Decimal()
值。@lol问题是关于舍入而不是格式化。即使OP想要格式化。打印小数也处理区域设置。舍入是一种数学运算,而打印格式化的值只是一种视觉操作。但在OP问题中,100%打印比100.00%打印更好;)是的,你是对的,我抓到了一个令人尴尬的偷袭代码库的行为。英雄联盟有没有办法将某个精度(如0.3f)设置为当前模板中的默认值?只是为了避免重复?
{{ "%.2f"|format(result) }}