gpt4 book ai didi

python - 我可以在 Django 的 DecimalField 上从 Avg 取回 Decimal 吗?

转载 作者:行者123 更新时间:2023-11-28 18:53:03 28 4
gpt4 key购买 nike

当对 models.DecimalField 使用 Avg 聚合时,返回值是 float,而不是 decimal。十进制。这是因为我的特定数据库(在本例中为 sqlite3)不支持小数形式的聚合值吗?如果是这样,是否有数据库可以做到?有没有办法解决这个问题(即,一种将值返回为小数的方法),以便可以完成精确的十进制数学运算(同样,无需将 float 转换为 str 然后返回到 decimal.Decimal)?

注意:我不是在与那些相信“足够准确”等同于“准确”的人争吵,也不是为了讨论 Star Ship Enterprise 因错误的、基于 float 的算法而坠毁而火上浇油。

最佳答案

来自SQLLite 3 manual , 支持的数据类型是null, integer, real (effectively float), textblob。基于此,我希望引擎将任何输入 decimal.Decimal 转换为 real 然后将其作为 float 返回给您,因为它不想将它向上转换到超过它的准确性。

大多数实际的数据库(我几乎不认为 sqllite 只是一个原型(prototype))支持十进制数据类型。我知道MySQL does .至于它们是否返回 decimal.Decimal 而不是 float,很遗憾,我不能告诉你,因为我还没有调查它们的准确性, float 对我来说已经足够好了。不过,这将是一个不错的起点。

关于python - 我可以在 Django 的 DecimalField 上从 Avg 取回 Decimal 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9090364/

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