【发布时间】:2012-02-01 03:29:05
【问题描述】:
将Avg 聚合用于models.DecimalField 时,返回值为float,而不是decimal.Decimal。这是因为我的特定数据库(在本例中为 sqlite3)不支持聚合值作为小数吗?如果是这样,是否有数据库可以做到这一点?有没有办法解决这个问题(即,一种将值作为小数返回的方法),以便可以完成准确的十进制数学运算(另外,无需将 float 转换为 str 然后再转换回 @987654327 @)?
注意:我不是在与那些相信“足够准确”与“准确”相同的人打架,也不是为了讨论星舰企业号因基于浮点数的错误算法而坠毁的问题。
【问题讨论】:
-
我刚刚用谷歌搜索了
star ship enterprise float based arithmetic。无论如何,在 PostgreSQL 上我也得到了一个浮点数。 -
这是一个奇怪的具体说明。
标签: python django decimal floating-accuracy django-aggregation