Проблема с двойной точностью драйвера HP Nonstop Tandem T4SQLMX
Я использую драйвер jdbc T4SQLMX типа 4 для чтения поля двойной точности из таблицы SQL/MX. Фактическое значение - 29963,26, однако значение, считанное с помощью драйвера jdbc, кажется, 29963,260000000002. Кажется, это проблема, даже если я прочитал его как resultset.getString() или resultset.getBigDecimal(), потому что драйвер всегда возвращает 29963.260000000002.
Точно так же значение 99,76 возвращается как 99,759999999999. Мы используем CAIL для просмотра фактического значения 99,76 из таблицы SQL/MX, а клиент и веб-приложение SQL-Squirrel используют драйвер sqlmx jdbc, где мы видим значение как 99,759999999999.
Кто-нибудь сталкивался с этой или подобной проблемой и есть решение этой проблемы?
1 ответ
Я обернул двойное значение внутри BigDecimal, затем использовал setscale до 2 цифр
BigDecimal.valueOf((resultset.getDouble(<column name here))).setScale(2, RoundingMode.HALF_UP));