【发布时间】:2018-01-28 10:17:43
【问题描述】:
我不明白Django DecimalField 的行为。
定义为:
一个固定精度的十进制数,在 Python 中由一个 Decimal 实例表示。
但是,使用以下模型:
class Article(models.Model)
unit_price = DecimalField(max_digits=9, decimal_places=2)
我可以通过至少 3 种方式创建文章:
article = Article.objects.create(unit_price="2.3")
type(article.unit_price)
>>> str
article = Article.objects.create(unit_price=2.3)
type(article.unit_price)
>>> float
article = Article.objects.create(unit_price=Decimal('2.3'))
type(article.unit_price)
>>> decimal.Decimal
为什么 Django DecimalField 能够返回 Decimal 类型以外的东西?
确保我的应用永远不会处理浮动价格的最佳方法是什么?
谢谢。
【问题讨论】:
标签: python django floating-point decimal