Jinja2过滤器的操作顺序?

时间:2014-04-23 15:26:58

标签: python jinja2 rounding

我不确定Jinja的限制,所以这可能是不可能的......我试图计算我已经传入Jinja的两个变量的百分比,但我可以& #39;让它圆滑正确。我想拥有的是:

{{ spygames / games|length * 100 | round(0) | int }}

哪个得到正确的数字(66.666666,因为间谍游戏是2并且有3个游戏),但它呈现为" 66.6666666667" (我在html中添加%符号)我希望它只是" 67"。

我也尝试过在python中获取游戏的长度并将其作为单独的整数值传递,但它仍然具有相同的结果。

我怎样才能将其整数调整为整数?

谢谢!

1 个答案:

答案 0 :(得分:5)

Jinja文档没有指定任何优先规则,但我强烈怀疑过滤器仅适用于它之前的100文字。

对表达式进行分组,以确保将过滤器应用于表达式的结果:

{{ (spygames / games|length * 100) | round(0) | int }}

就个人而言,我会使用str.format() function;它有一个%百分比格式选项,包括乘以100:

{{ '{:.0%}'.format(spygames / games|length) }}

为输出添加百分号。