我有一个查询,它正在创建返回的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驱动程序的问题还是缺少我的查询?
答案 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