用多位数字保存位显示2



我想用10位小数保存在数据库中,但在GUI中只显示2位小数。

数据类型无关紧要。

有什么简单的方法可以做到这一点吗?

谢谢Henrik

答案实际上是双重的。

  1. 如何存储数据?

    不要将其存储为CharField或其他什么。只需将其存储为DecimalField或FloatField即可。

    models.DecimalField(..., max_digits=20, decimal_places=10)   
    
  2. 如何只显示两个小数?

    使用模板标记floatformat,该标记将整数值作为输入,并输出一个按所需小数位数四舍五入的小数。在您的情况下,这将是{{ value|floatformat:2 }}

请注意,浮点字段和十进制字段不相同。


[感谢Burhan Khalid指出不需要自定义模板标签]

如果数据类型无关紧要,最简单的方法是将其作为文本存储在数据库中,然后在显示时解析金额。

>>> silly = '12345.6789098765'
>>> silly[:silly.rfind('.')+3]
'12345.67'

稍微先进一点;假设你不需要精度:

>>> "{0:0.2f}".format(float(silly))
'12345.68'

最新更新