Django:允许在输入表单中使用FloatField或IntegerField吗?

Django:允许在输入表单中使用FloatField或IntegerField吗?,django,Django,我有一个Django型号,带有价格字段: class Book(models.Model): title = models.CharField(max_length=200) price = models.FloatField(null=True, blank=True) 问题是,我的用户可能输入的价格为245或245.00,我希望系统能够处理这两种情况 我可以做些聪明的事情来允许这一点吗?处理价格的最佳实践通常要求您无论如何都应该使用整数字段,因为否则您可能会遇到奇怪的舍入/

我有一个Django型号,带有价格字段:

class Book(models.Model):
    title = models.CharField(max_length=200)
    price = models.FloatField(null=True, blank=True)
问题是,我的用户可能输入的价格为245或245.00,我希望系统能够处理这两种情况


我可以做些聪明的事情来允许这一点吗?

处理价格的最佳实践通常要求您无论如何都应该使用整数字段,因为否则您可能会遇到奇怪的舍入/有限精度错误。只要除以/乘以100。

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


不过,我支持maikhoepfel的建议,即不要使用浮动来定价。浮点不能准确地表示某些十进制值-这是标准IEEE浮点算法的一个限制。但是,我建议您改为使用,因为这非常适合于具有固定小数位数的值,如价格。

并且它不起作用<代码>浮点(245)是
245.00
。。。