Разница между Java и postgres значением BigDecimal / numeric - PullRequest
0 голосов
/ 24 февраля 2020

Я использую тип BigDecimal в Java проекте. Я пытаюсь сохранить его, используя функцию с полем цифра c. Java и postgres имеют разные значения. Например, значение 56,97 из Java сохраняется как 56,9699999999999989 в postgres. Как я могу предотвратить это?

1 Ответ

3 голосов
/ 24 февраля 2020

Если вы go до postgresql документы: https://www.postgresql.org/docs/current/datatype-numeric.html

Я предполагаю, что вы используете реальную или двойную точность, которые описаны как "переменная точность, неточная".

Если вы хотите, чтобы это было точно, скажем, мы говорим о деньгах или аналогичных, то вы должны использовать numeric или decimal типов:

NUMERIC(precision, scale)

Точность общее количество цифр, а шкала - это число цифр в дробной части.

Например, число 1234.567 имеет точность семь и шкалу три.

...