【发布时间】:2009-12-16 20:18:28
【问题描述】:
MySQLdb 有点奇怪,它似乎总是返回一个 Decimal 对象,其有效数字比除法运算的分子多 2 个。
如果分母比较大,这意味着有时结果会被截断为零:
>>> import MySQLdb
>>> db = MySQLdb.connect(.....)
>>> c = db.cursor();
>>> c.execute("select 1000/ 20990933630")
1L
>>> c.fetchall()
((Decimal("0.0000"),),)
>>> c.execute("select 1000.0000000000000000000000/ 20990933630")
1L
>>> c.fetchall()
((Decimal("4.763961516084313397E-8"),),)
>>> c.execute("select (1000 + 0.000000000000000000000) / 20990933630")
1L
>>> c.fetchall()
((Decimal("4.76396151608431340E-8"),),)
我可以强制浮点除法吗?有没有比向所有内容添加 0.0000000000 更优雅的方法?
【问题讨论】: