0

我使用 T4SQLMX 类型 4 jdbc 驱动程序从 SQL/MX 表中读取双精度字段。实际值为29963.26,但是,使用 jdbc 驱动程序读取的值似乎是29963.260000000002。即使我将其读取为 resultset.getString() 或 resultset.getBigDecimal(),这似乎也是一个问题,因为驱动程序总是返回 29963.260000000002。

同样,值99.76返回为99.759999999999。我们使用 CAIL 从 SQL/MX 表中查看实际值99.76,SQL-Squirrel 客户端和 web-app 使用 sqlmx jdbc 驱动程序,我们看到的值为99.759999999999

有没有人遇到过这个或类似的问题并且有解决这个问题的方法?

4

1 回答 1

0

我将 double 包裹在 BigDecimal 中,然后使用 setscale 到 2 位

BigDecimal.valueOf((resultset.getDouble(<column name here))).setScale(2, RoundingMode.HALF_UP));

于 2019-12-10T17:42:09.287 回答