Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.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
为什么Mysql float只能在Java中正常工作?_Java_Python_Mysql_Floating Point - Fatal编程技术网

为什么Mysql float只能在Java中正常工作?

为什么Mysql float只能在Java中正常工作?,java,python,mysql,floating-point,Java,Python,Mysql,Floating Point,我正在尝试使用不同的语言和不同的DB客户端执行以下查询 SELECT MY_FLOAT_COL*1 FROM MY_TABLE; SELECT MY_FLOAT_COL FROM MY_TABLE; 根据我的观察,第一个查询返回Python和DB客户机(如HeidiSQL)中有偏差的结果,原因是。但是使用JDBC连接(Squirrel)的Java代码或DB客户机为上述查询返回相同的结果。Java有什么魔力,我怎样才能让这种魔力与其他语言/客户机协同工作 **注意:**这实际上是我的另一个的子

我正在尝试使用不同的语言和不同的DB客户端执行以下查询

SELECT MY_FLOAT_COL*1 FROM MY_TABLE;

SELECT MY_FLOAT_COL FROM MY_TABLE;
根据我的观察,第一个查询返回Python和DB客户机(如HeidiSQL)中有偏差的结果,原因是。但是使用JDBC连接(Squirrel)的Java代码或DB客户机为上述查询返回相同的结果。Java有什么魔力,我怎样才能让这种魔力与其他语言/客户机协同工作

**注意:**这实际上是我的另一个的子集。最初的问题转移了用户提供完整答案的注意力。我想更具体地回答这个问题。

正如您在乘法中提到的那样,
MY\u FLOAT\u COL*1
更改精度级别,因为它被转换为
DOUBLE

从客户端检索数据时,如果将其视为数字,则会将其转换为客户端使用的类型。所以转换发生了两次

在java中,我假设您将其转换回
float
。如果以
BigDecimal
(或
String
)的形式检索它,则可以看到数据库内部使用的确切表示形式



请注意,java和python之间的差异是由于
float
的内部表示形式在java和python中不同float应该类似于java中的
double

这听起来可能更像是一个驱动程序问题。除java之外的所有语言都存在驱动程序问题..?无论我得到什么类型,我都会得到相同的结果。我认为这无关紧要。试着发布你的java和python代码。所以我们可以看到不同之处。