python mysql连接器向具有整数值的浮点数据类型单元格添加不必要的精度值
我有一个表,其中有一个数据类型为float的列\u float,但为该列插入的值是一个整数值5 当我通过python mysql连接器读取这个值时,它给了我一个浮点值5.0 我的要求是,如果浮点列中有一个整数值,则应仅将其读取为整数,而不增加任何额外的精度python mysql连接器向具有整数值的浮点数据类型单元格添加不必要的精度值,python,mysql,mysql-connector,mysql-connector-python,Python,Mysql,Mysql Connector,Mysql Connector Python,我有一个表,其中有一个数据类型为float的列\u float,但为该列插入的值是一个整数值5 当我通过python mysql连接器读取这个值时,它给了我一个浮点值5.0 我的要求是,如果浮点列中有一个整数值,则应仅将其读取为整数,而不增加任何额外的精度 有人帮忙吗?python-mysql-connector的任何设置都可以这样做。浮点始终有小数,但您可以检查它是否有小数,然后仅当只有零时才进行舍入 将@a替换为您的列名 SET @a = 5.0; SELECT IF( ROUND(@a,0
有人帮忙吗?python-mysql-connector的任何设置都可以这样做。浮点始终有小数,但您可以检查它是否有小数,然后仅当只有零时才进行舍入 将@a替换为您的列名
SET @a = 5.0;
SELECT IF( ROUND(@a,0) = @a,ROUND(@a,0),@a)
结果
# IF( ROUND(@a,0) = @a,ROUND(@a,0),@a)
5
# IF( ROUND(@a,0) = @a,ROUND(@a,0),@a)
5.1
还有其他类似的吗
SET @a = 5.1;
SELECT IF( ROUND(@a,0) = @a,ROUND(@a,0),@a)
结果
# IF( ROUND(@a,0) = @a,ROUND(@a,0),@a)
5
# IF( ROUND(@a,0) = @a,ROUND(@a,0),@a)
5.1
对于python,也有相同的函数
round(5.0)
# Returns: 5
谢谢@nbk,但我的问题更倾向于mysql connector,在我的代码中,我是通过select*从表中获取数据的,所以我想知道mysql connector全局设置中是否有任何东西,这样它本身就不会增加额外的精度。如果您有一个带浮点和整数的混合列,而且您不想使用python对值进行四舍五入。此外,SELECT*编程非常糟糕,因为您总是应该最小化数据量,只选择所需的列。因此,在mysql或python中使用roung是您的选择