我正在编写一个 Python 脚本(Windows XP 上的 Python 版本 2.5.1),该脚本涉及连接到 Microsoft Access (.mdb) 数据库以从表中读取值。我在一项记录中得到了一些意想不到的结果,其中感兴趣的精度领域正在四舍五入。
我知道感兴趣的 Access 表字段是 Double 数据类型。但是,导致我在表中发现这个的值是 1107901035.43948。当我读取 Python 代码中的值并将其打印出来时,它显示的是 1107901035.44。
是否有 pyODBC 连接参数或其他必须设置的参数?我在文档中找不到任何内容
这是我的代码的样子(目的是通过识别对我感兴趣的领域具有最大价值的记录来解决不需要的记录):
conn = pyodbc.connect('DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=' + pGDB)
conn.autocommit = True
cursor = conn.cursor()
tableList = []
for x in cursor.tables():
val = str(x[2])
if val[0:3] <> "MSy":
if val[0:3] <> "GDB":
if val[-5:] <> "Index":
tableList.append(val)
for x in tableList:
try:
SQL = "SELECT * FROM %s" % (x)
cursor.execute(SQL)
rows = cursor.fetchall()
counter = 0
for row in rows:
counter +=1
if counter > 1:
print "Site %s is a multipart basin" % (x)
SQL = "SELECT MAX(Shape_Area) AS AREA FROM %s" % (x)
cursor.execute(SQL)
row = cursor.fetchone()
val = row.AREA
print str(val)
SQL = "DELETE * FROM %s WHERE Shape_Area < %s" % (x, val)
cursor.execute(SQL)
谢谢,汤姆