Java ResultSet добавление нулей - PullRequest
0 голосов
/ 30 июня 2018

Странное поведение здесь.

В базе данных SQL Server столбцы имеют тип Numeric (20,6), но набор результатов получает значения, добавленные группой нулей:

Таблица: 952,346,44 - 890,00

Результирующий набор: 952346.440000 -> 890000.000000

Приложение работает на WAS 8.5, Java 7 с драйвером JDBC sqljdbc4-4.1.jar

Ответы [ 2 ]

0 голосов
/ 30 июня 2018

Ваш столбец - NUMERIC(20,6), 6 - это шкала, которая определяет количество десятичных знаков. Другими словами, значения уже были 952346.440000 и 890000.000000, и JDBC только что вернул их в соответствии со спецификацией.

Если вам нужно только 2 десятичных знака, используйте NUMERIC(20,2). Или измените масштаб числа в вашем коде, используя один из методов BigDecimal.setScale.

0 голосов
/ 30 июня 2018

Как вы упомянули Numeric(20,6), что означает, что масштаб числа равен 6

И по этой причине такая же точность рассматривается в Java.

Теперь, если вы хотите уменьшить его на 2 десятичных знака, вы можете просто обновить тип столбца или, если он уже используется, вы можете просто уменьшить число в JAVA различными способами, один из которых выглядит следующим образом:

Double.parseDouble(String.format("%.2f", 952346.440000));
...