Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python mysql连接器向具有整数值的浮点数据类型单元格添加不必要的精度值_Python_Mysql_Mysql Connector_Mysql Connector Python - Fatal编程技术网

python mysql连接器向具有整数值的浮点数据类型单元格添加不必要的精度值

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

我有一个表,其中有一个数据类型为float的列\u float,但为该列插入的值是一个整数值5

当我通过python mysql连接器读取这个值时,它给了我一个浮点值5.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是您的选择