保存多位数位显示两个

时间:2013-08-01 09:19:10

标签: django python-2.6

我希望在数据库中保存10位小数但在GUI中只显示2位小数。

数据类型并不重要。

有没有简单的方法可以做到这一点?

由于 亨利克

2 个答案:

答案 0 :(得分:1)

答案实际上是双重的。

  1. 如何存储数据?

    不要将其存储为CharField或其他东西。只需将其存储为DecimalFieldFloatField

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

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

  3. 请注意,浮点数和小数字段为not the same


    [信用额转到Burhan Khalid,指出不需要自定义模板标记]

答案 1 :(得分:0)

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

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

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

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