gpt4 book ai didi

python - DecimalField 问题,django 模型的 max_digits

转载 作者:行者123 更新时间:2023-11-29 05:06:25 24 4
gpt4 key购买 nike

我已经在 models.py 中声明了以下字段。

marks = models.DecimalField(max_digits=2, decimal_places=2, default=3.0)

后端表结构为:

| Field | Type          | Null | Key | Default | Extra        |
| marks | float(3,1) | NO | | 1.0 | |

所以这里的默认值 3.0 将尝试在后端保存为 3.00(小数位 = 2),并且没有空间存储左侧值 3 对吗?

对于上述情况,当我给 max_digits=3 或 decimal_places=1 时它起作用了。

请帮助我,从 django 到 mysql 数据库流程到底发生了什么?

最佳答案

DecimalField 接受参数 max_digits 是十进制数的总位数,decimal_places 是小数位数.

如果将 max_digits 定义为 3,将 decimal_places 定义为 2,则可以保存的最大数字为 9.99。它有 3 位数字和 2 位小数。例如,如果 max_digits 为 5,decimal_places 为 2,则您可以保存的最大数字为 999.99。

在您的情况下,最多 2 位数字和 2 位小数是没有意义的,因为它不能存储 3.00,它有 3 位数字。因为 2 位数字已经被小数位占用,所以在点之前没有数字空间。因此,您可以节省的最大数字是 0.99。

关于python - DecimalField 问题,django 模型的 max_digits,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47103113/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com