goj*_*omo 16 python django decimal django-models
我有一个像这样的模型:
class ModelWithDecimal(models.Model):
value = models.DecimalField(max_digits=2,decimal_places=2)
Run Code Online (Sandbox Code Playgroud)
......但是当我尝试......
obj = ModelWithDecimal(value="1.5")
obj.save()
Run Code Online (Sandbox Code Playgroud)
我quantize result has too many digits for current context在保存期间收到错误.不应该没问题 - 它小于2位数,小数点后小于2位数?
模型发生同样的错误:
class ModelWithDecimal(models.Model):
value = models.DecimalField(max_digits=11,decimal_places=8)
Run Code Online (Sandbox Code Playgroud)
......和尝试的实例......
obj = ModelWithDecimal(value="1005.7")
obj.save()
Run Code Online (Sandbox Code Playgroud)
再次,似乎它应该工作:只有4位总数(小于11),并且只有1位小数后(小于8).
怎么了?
goj*_*omo 32
问题是decimal_places每个实例都会消耗所有十进制数,无论你是否有非零数字,只留下(max_digits - decimal_places)十进制左边的数字.
因此DecimalField(max_digits=2,decimal_places=2),小数点左边有零位数字,"1.5"不适合.因为DecimalField(max_digits=11,decimal_places=8),小数点左边只有三位数字,"1005.7"不适合.
扩展您的max_digits,价值观将起作用.
| 归档时间: |
|
| 查看次数: |
7671 次 |
| 最近记录: |