Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.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
Java Jasper未返回双Postgres列的正确精度_Java_Postgresql_Jasper Reports - Fatal编程技术网

Java Jasper未返回双Postgres列的正确精度

Java Jasper未返回双Postgres列的正确精度,java,postgresql,jasper-reports,Java,Postgresql,Jasper Reports,我有一个查询,它正在创建返回的双值数组 SELECT array_agg(price) rm FROM product; 当我在Postgres Shell中运行此查询时,我得到了预期的输出 -[ RECORD 1 ]--+---------------------- rm | {79.33,49} 但是,当我在Jasper Report中运行相同的时,我得到的输出是 -[ RECORD 1 ]--+---------------------- rm

我有一个查询,它正在创建返回的双值数组

 SELECT array_agg(price) rm FROM product;
当我在Postgres Shell中运行此查询时,我得到了预期的输出

-[ RECORD 1 ]--+----------------------
rm             | {79.33,49}
但是,当我在Jasper Report中运行相同的时,我得到的输出是

-[ RECORD 1 ]--+----------------------
rm             | {79.3299999999,49}

是因为Postgres JDBC驱动程序的问题还是我的查询中缺少了什么?

您需要的是将连接的
额外\u float\u digits
PostgreSQL变量设置为0

如果您自己创建连接,则可以直接执行
connection.createStatement().execute(“将额外浮点数设置为0”)

如果使用连接池,则可以将该验证查询高举以执行
选择set\u config('extra\u float\u digits','0',false)


如果上述任何一项都不适用,您可以直接在查询中执行,如在
选择set\u config('extra\u float\u digits','0',false),数组\u agg(price)rm from product

您是否在textField中获得此值
79.329999999,49
?是且字段类型为StringDouble?您是否尝试了Double?否。因为我正在将数组rm转换为字符串,并将其附加到md5哈希以进行数字签名。@Alex K看不到与可能的重复项有任何关联。好的。我会尽量在明天之前让你们知道结果。谢谢确实有效。为什么我们需要设置
set\u config('extra\u float\u digits','0',false)
?JDBC驱动程序有什么问题吗?驱动程序就是这样工作的,我说不出是不是错了。例如,见