首页 > 解决方案 > HP Nonstop Tandem T4SQLMX 驱动程序双精度问题

问题描述

我使用 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

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

标签: precisionhp-nonstoptandemsqlmx

解决方案


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

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


推荐阅读