python在查询sqlServer中numeric类型时出现形如0e-8问题

背景:查询数据库时发现了形如0e-8的东西,(先开始我认为是计组老师讲的数据库看上去是0,但是对于计算机来说,可能实际存储不是0的东西,这段可忽略不计)

解决:同事认为0e-8也可表示0,也是一种正确的形式,只不过是科学计数法的形式。但是用户显然不会接受这一结果。

后端假如在查询到数据后做修改(将科学计数法转为正常0),太麻烦,我认为将经度降低是可以达到效果的。

参考:

sqlserver字段类型详解

理论:

decimal   精确数值型 
decimal 数据类型能用来存储从-10的38次幂-1到10的38次幂-1的固定精度和范围的数值型数据。使用这种数据类型时,必须指定范围和精度。 范围是小数点左右所能存储的数字的总位数。精度是小数点右边存储的数字的位数

numeric   精确数值型 
numeric数据类型与decimal 相似。

过程:

1:数据表如下

python在查询sqlServer中numeric类型时出现形如0e-8问题_第1张图片

2:python访问

import pymssql
connect = pymssql.connect('(local)','sa','123456','springboot_mybatis_basic')
if connect:
    print("连接成功!")
cursor = connect.cursor() #创建一个游标对象,python里的sql语句都要通过cursor来执行
sql = "select * from numeric_test"
cursor.execute(sql)
row = cursor.fetchone()
print(row[0])
print(row[1])
cursor.close()
connect.close()

3:结果证明我们猜想正确,降低精度能够达到我们所期望的效果,即numeric(38,8)变更为numeric(38,3),即能达到0E-8变为0.000的显示效果

你可能感兴趣的:(数据库,python,python,sqlserver,开发语言)