【发布时间】:2020-03-02 03:52:34
【问题描述】:
我有一个类似这样的模型:
class Item(models.Model):
value_a = models.DecimalField(default=0.0, decimal_places=4, max_digits=20)
value_b = models.DecimalField(default=0.0, decimal_places=4, max_digits=20)
value_c = models.DecimalField(default=0.0, decimal_places=4, max_digits=20)
现在假设我有以下物品:
a = Item()
a.value_a = 1.20
a.value_b = 2
a.value_c = Decimal('20.20')
a.save()
当我访问对象时(从数据库检索后)我得到的值:
a.value_a = 1.2 <float>
a.value_b = 2 <int>
a.value_c = Decimal('20.20')
请注意,我的数据库数据类型可能会有所不同。
为什么 DecimalField 会这样做?我不能总是以 python Decimal 的形式获取值吗?
【问题讨论】:
-
Decimal('20.20')是 python 十进制。您期望什么价值? -
好吧,只有 'c' 返回十进制。
标签: django python-3.x django-models floating-point decimal