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