Flask 如何使用浮点过滤器仅显示小数点后的两位数字?
我正在使用Flask/Jinja2模板使用| float过滤器显示一个数字 这是我的密码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
{% 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) }}