【发布时间】:2015-02-11 15:47:41
【问题描述】:
我使用(优秀的)Flask framework 构建了一个网站,我现在想在其中显示一些数字。 jinja2 提供的round filter 工作正常,除非没有十进制值:
{{ 1.55555|round(2) }} -> 1.56
{{ 1.5|round(2) }} -> 1.5
{{ 1.0|round(2) }} -> 1.0
{{ 1|round(2) }} -> 1.0
但我希望最后两个显示为1(没有尾随.0)。有人知道我如何用 jinja2 做到这一点吗?欢迎所有提示!
[编辑]
我尝试使用trim(),但令我惊讶的是,下面的 sn-p 给出了TypeError: do_trim() takes exactly 1 argument (2 given):
{{ 1.0|round(2)|trim('.0') }}
【问题讨论】:
-
我认为你不能使用默认的 Jinja2 过滤器。在 Python 中使用Formatting floats in Python without superfluous zeros 进行操作,或者创建您自己的过滤器来实现它。
-
trim只希望修剪的值作为参数。您不能指定要修剪的内容。 -
警告! "|trim('.0')" 把 10.0 变成 1。
标签: python templates flask rounding jinja2