【问题标题】:How to format a float number in Python Flask and Jinja?如何在 Python Flask 和 Jinja 中格式化浮点数?
【发布时间】:2018-02-19 01:12:00
【问题描述】:

我已经用谷歌搜索并在这里搜索过,但找不到我理解的解释。我有一个值被传递到 html 模板中,其值为 53.0,该值是从第 3 方 API 获得的。

我的代码是:

£{{product_details.UnitPrice}}

显示 53.0 英镑,有没有办法将其格式化为小数点后 2 位浮点数,以便正确读取 53.00 英镑。

我尝试从 github 阅读一些说明 here,但我不明白它们。我试图避免在我的实际 Python 代码中分别格式化每个变量,或者这是错误的方法吗?

我正在编辑问题,因为根据我的评论:

£{{product_details.UnitPrice|float}}

没有任何区别,我不明白给出的链接。

【问题讨论】:

  • 我已经读过它,它对我的​​上下文没有意义。 £{{product_details.UnitPrice|float}} 没有区别。
  • 看看我链接的具体答案 - 它提到了这样做:{{'%0.2f'| format(proc_err|float)}}%。在这个问题的上下文中,它看起来像£{{'%0.2f'|format(product_details.UnitPrice|float)}}
  • 谢谢杰克,这确实解决了问题,但不能帮助我理解这里发生的事情或其他可能的选择。在 github 中它说“在 jinja2 中实现的格式过滤器无论如何都是多余的。如果可以的话,我会弃用并最终删除它,但 mitsuhiko 不会让我破坏向后兼容性。每当我必须在模板中格式化字符串时,我使用内联的模运算符。”我不明白这样做的正确方法。
  • 看起来使用内联模运算符的方式是这样的:£{{'%0.2f' % product_details.UnitPrice}}

标签: python flask jinja2


【解决方案1】:

感谢 Jake 的解释

{{'%0.2f'|format(product_details.UnitPrice|float)}}

获取小数点后两位的正确格式。

【讨论】:

    【解决方案2】:

    试试这个:

    {{ "£{:,.2f}".format(product_details.UnitPrice) }}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-23
      • 1970-01-01
      • 1970-01-01
      • 2018-10-28
      • 2013-04-19
      • 2010-10-14
      • 1970-01-01
      相关资源
      最近更新 更多