【问题标题】:save with multipe digits bit show two保存多位数位显示两个
【发布时间】:2013-08-02 03:11:57
【问题描述】:

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

数据类型无关紧要。

有什么简单的方法吗?

谢谢 亨里克

【问题讨论】:

  • 是否有舍入?

标签: django python-2.6


【解决方案1】:

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

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

稍微高级一点;假设您不需要精度:

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

【讨论】:

  • 从长远来看,有时“简单的方法”是困难的方法。
【解决方案2】:

答案实际上是双重的。

  1. 如何存储数据?

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

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

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

请注意,浮点数和十进制字段是not the same


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

【讨论】:

  • 不用写模板标签,直接用floatformat
  • 谢谢,我只是要把我所有的数据恢复到我的数据库中(:-))然后我会试试这个。回复你。
  • @kingRauk 要接受答案,您必须点击上下投票箭头下方的“V”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-24
  • 2013-01-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多