Jasper没有返回双Postgres列的适当精度

时间:2017-03-16 08:31:32

标签: java postgresql jasper-reports

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

 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驱动程序的问题还是缺少我的查询?

1 个答案:

答案 0 :(得分:1)

您需要将extra_float_digits PostgreSQL变量设置为0以进行连接。

如果您自己创建连接,则可以直接执行connection.createStatement().execute("set extra_float_digits to 0")

如果您使用连接池,则可以将该验证查询高举到select set_config('extra_float_digits', '0', false)

如果以上都不适用,您可以直接在查询中执行此操作,如select set_config('extra_float_digits', '0', false), array_agg(price) rm from product