我有一个包含三列的 SQL Server 数据库表。例如,此列中的一个值可能是 0.76。这列名为“paramvalue”的数据定义为real。当我使用 pyodbc 模块命令时fetchall(),我得到一个像 0.7599999904632568 而不是 0.76 的数字。我正在使用 Visual Studio 2017 和 Visual Studio 的 Python 工具。我也尝试过 pypyodbc 模块,但遇到了同样的问题。
该表有三列,定义如下;
pconfig_id [int] IDENTITY(41,1) NOT NULL,
paramname [nvarchar](50) NOT NULL,
paramvalue [real] NULL
我的 Python 代码:
import pyodbc
cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=SERVERNAME;DATABASE=DBNAME;UID=USER;PWD=PASSWORD;Connect Timeout=15')
cursor = cnxn.cursor()
dict = {}
rows = cursor.execute("SELECT * FROM mytable")
for row in cursor.fetchall() :
if not row[1] in dict.keys():
dict[row[1]] = {}
dict[row[1]][row[2]] = row[0]
在上面的示例中,典型行的 row[2] 的值是 0.7599999904632568,而不是预期的 0.76。
海绵宝宝撒
叮当猫咪
相关分类