检查/验证 Django 模板中是不是有小数位实数,如果为零,则四舍五入
Posted
技术标签:
【中文标题】检查/验证 Django 模板中是不是有小数位实数,如果为零,则四舍五入【英文标题】:Check/verify if in Django template, there are real numbers in decimal places, and if zeros, round off检查/验证 Django 模板中是否有小数位实数,如果为零,则四舍五入 【发布时间】:2018-12-14 03:14:30 【问题描述】:我似乎找不到这个问题的具体答案。因此,我的问题因两种不同的情况而异:
(1) 在我的 Django 模板中,我可以使用某种过滤器将小数位的实数舍入到仅 2 位,但仍将任何零舍入到最接近的整数/整数? (即 1.25 美元和 1.00 美元分别看起来像 1.25 美元和 1 美元)
** 不幸的是,|floatformat:2 包含零
(2) 如果上述不可行,是否有某种条件,我可以在 Django 模板中预先检查小数位是否有实数而不是零,并因此执行某种逻辑?
提前致谢!
【问题讨论】:
wrt/ 第 2 点:甚至不要尝试在模板本身中编写这样的逻辑,而是编写自定义模板过滤器(这非常简单,真的)。 【参考方案1】:如果您需要在 Django 中完成任何自定义操作,请使用 django template tags。
或
value|floatformat:"-2" 这可能适用于您的情况
【讨论】:
不确定您是否阅读了我的帖子,但我确实使用了 django 模板标签,但它并没有按照我想要的方式工作。我使用了浮点格式。 根据需要写一个自定义的,写一个自定义的模板标签,因为你只需要删除0,你可以使用任何正常的拆分方法,比较和删除 好的,会试试的。谢谢。 必须将在我的自定义过滤器中传递的值转换为浮点数,但之后它工作得很好。 :D 嘿,Thomas,有没有办法四舍五入,所以如果小数点后第一个和第二个位置有一个零,它会四舍五入到最接近的整数,如果只有一个零,它是在小数点后第二位,保持不变? (例如 1.50 将保持 1.50,但 1.00 将变为 1)以上是关于检查/验证 Django 模板中是不是有小数位实数,如果为零,则四舍五入的主要内容,如果未能解决你的问题,请参考以下文章
Django 模板 - 检查字段中是不是有值,如果 ManyToManyField 则为空