Django:允许输入表单中的FloatField或IntegerField?

时间:2010-12-01 18:20:50

标签: django

我有一个带有价格字段的Django模型:

class Book(models.Model):
    title = models.CharField(max_length=200)
    price = models.FloatField(null=True, blank=True)

问题是我的用户可能输入245或245.00的价格,我希望系统能够处理。

我可以做一些聪明的事情吗?

2 个答案:

答案 0 :(得分:5)

我不明白为什么你需要做任何事情。 float不必具有浮点组件 - 245245.00一样有效。

我会第二次maikhoepfel的建议,你不要使用花车价格。浮点无法准确表示某些十进制值 - 这是标准IEEE浮点算法的限制。但是,我建议您改用DecimalField,因为这对于具有固定小数位数的值(如价格)非常理想。

答案 1 :(得分:0)

处理价格的最佳做法通常要求您应该使用IntegerField,因为否则您可能遇到时髦的舍入/有限精度错误。只需除以100即可。