我希望在数据库中保存10位小数但在GUI中只显示2位小数。
数据类型并不重要。
有没有简单的方法可以做到这一点?
由于 亨利克
答案 0 :(得分:1)
答案实际上是双重的。
如何存储数据?
不要将其存储为CharField或其他东西。只需将其存储为DecimalField或FloatField。
models.DecimalField(..., max_digits=20, decimal_places=10)
如何仅显示两位小数?
使用模板标记floatformat
,它将完整值作为输入,并输出一个四舍五入的小数位数和所需的小数位数。在你的情况下,{{ value|floatformat:2 }}
。
请注意,浮点数和小数字段为not the same。
[信用额转到Burhan Khalid,指出不需要自定义模板标记]
答案 1 :(得分:0)
如果数据类型无关紧要,最简单的方法是将其作为文本存储在数据库中,然后在显示时解析数量。
>>> silly = '12345.6789098765'
>>> silly[:silly.rfind('.')+3]
'12345.67'
稍微先进一点;假设您不需要精确度:
>>> "{0:0.2f}".format(float(silly))
'12345.68'