Значения мусора в числах с плавающей точкой - PullRequest
0 голосов
/ 23 июня 2018

Я работаю над Java (Swing), который подключен к базе данных на H2.Я приложил скриншот JFrame, я ввожу значения как пользователь, и в базе данных хранится какое-то мусорное значение.(см. снимок экрана базы данных, второй столбец, где empid = 1300)

JFrame screenshot with the values

Screenshot of the database

1 Ответ

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

Это потому, что они не могут быть точно представлены, и вы должны использовать BigDecimal в Java и DECIMAL в SQL.См. Здесь http://www.h2database.com/html/datatypes.html#decimal_type. Там написано:

Тип DECIMAL: тип данных с фиксированной точностью и масштабом.Этот тип данных рекомендуется для хранения значений валют.

Тип DOUBLE: число с плавающей запятой.Не следует использовать для представления значений валют из-за проблем с округлением.Если для имени типа FLOAT указано значение точности, оно должно быть от 25 до 53.

...