Python/Django中的十进制数
我正在尝试往数据库里插入数据,但似乎遇到了小数的问题。
我有 latitude
和 longitude
,比如说像下面这样的例子:
latitude = models.DecimalField(max_digits=30, decimal_places=15)
然后,当我尝试插入数据时,我写了:
Place(name="center", description="study center", latitude=41.214555, longitude=2.121451)
但是我收到这个错误:"quantize result has too many digits for current context"
我应该能使用这些数字,对吧?我不明白为什么会出现这个错误。如果有人能帮我,我会非常感激。
1 个回答
9
考虑这个模型:
class Place(models.Model):
name = models.TextField()
description = models.TextField()
longitude = models.DecimalField(max_digits=30, decimal_places=15)
latitude = models.DecimalField(max_digits=30, decimal_places=15)
这个应该可以正常工作(允许的最大数字和小数位数):
p = Place(
name='Name',
description='Description',
latitude=0123456789012345.0123456789012345,
longitude=0123456789012345.0123456789012345
)
p.save()
而这个应该会失败(超出限制的值):
p = Place(
name='Name',
description='Description',
latitude=01234567890123456.01234567890123456,
longitude=01234567890123456.01234567890123456
)
p.save()
在修改了你的Django代码后,确保相应地迁移或更改数据库。