我有一個字段的Django模型價格:Django:在輸入表單中允許FloatField或IntegerField?
class Book(models.Model):
title = models.CharField(max_length=200)
price = models.FloatField(null=True, blank=True)
的問題是,我的用戶可能輸入的價格爲245或245.00,而我希望系統能夠處理任何一種。
我可以做點聰明的事嗎?
我有一個字段的Django模型價格:Django:在輸入表單中允許FloatField或IntegerField?
class Book(models.Model):
title = models.CharField(max_length=200)
price = models.FloatField(null=True, blank=True)
的問題是,我的用戶可能輸入的價格爲245或245.00,而我希望系統能夠處理任何一種。
我可以做點聰明的事嗎?
我不明白你爲什麼需要做任何事情。浮點數不必具有浮點組件 - 245
與浮點數245.00
一樣有效。
我會第二maikhoepfel的建議,你不使用浮動價格,但。浮點不能精確地表示某些十進制值 - 這是標準IEEE浮點算法的限制。但是,我建議您使用DecimalField
來替代,因爲這對於具有固定小數位數值(如價格)的值非常理想。
正是我需要的。謝謝! – AP257 2010-12-01 19:08:56
處理價格的最佳做法通常決定您應該使用IntegerField,因爲您可能會遇到時髦的四捨五入/有限的精度錯誤,否則。只是除以/ 100。
-1:在django中有一個models.DecimalField在這種情況下。 – 2010-12-01 18:50:56
它不起作用? `float(245)`是`245.00` ... – 2010-12-01 18:23:05