【问题标题】:Django – remove trailing zeroes for a Decimal in a templateDjango – 删除模板中小数的尾随零
【发布时间】:2017-03-01 08:01:14
【问题描述】:

有没有办法从 django 模板中的 Decimal 字段中删除尾随零?

这就是我所拥有的:0.0002559000,这就是我需要的:0.0002559

有答案建议使用floatformat 过滤器:

{{ balance.bitcoins|floatformat:3 }}

但是,floatformat 执行舍入(向下或向上),这在我的情况下是不需要的,因为我只需要删除尾随零而不需要任何舍入。

【问题讨论】:

    标签: python django django-templates


    【解决方案1】:

    试试{{ balance.bitcoins|floatformat:"-3" }}

    https://docs.djangoproject.com/en/2.0/ref/templates/builtins/#floatformat:

    如果传递给 floatformat 的参数是负数,它会四舍五入 数到那么多小数位——但前提是有小数位 要显示的部分。

    【讨论】:

    • 请注意-3 的值必须用引号引起来:{{balance.bitcoins|floatformat:"-3"}}(由于字符限制,我无法编辑此答案)。
    【解决方案2】:

    解决方法是使用normalize()方法:

    {{ balance.bitcoins.normalize }}
    

    【讨论】:

    • 这对我不起作用,可能是因为我从 .values() 查询集而不是直接从数据库中获取值。
    • 相关文档位于docs.python.org/3/library/…
    • 我看到了 python 文档,但是即使我直接从一个对象中获取一个数字,这在 Django 模板中仍然不适合我。另一个解决方案确实有效。
    猜你喜欢
    • 1970-01-01
    • 2011-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-26
    相关资源
    最近更新 更多