Значение NaN в поле с плавающей точкой в ​​MSSQL - PullRequest
0 голосов
/ 10 марта 2009

Я работаю над Java-приложением, использую двойной тип для сохранения значения unitprice, qty и т. Д. Я обнаружил, что некоторые из этих значений в MSSQL показывают NAN и выбрасывает бесконечная ошибка, когда я пытаюсь использовать его повторно. Это так неразумно, я могу сохранить его, но больше не могу его использовать! Я думаю, что значение NAN в MSSQL должно быть действительным, когда оно впервые присутствует в Java, поэтому я могу сохранить. Как и когда эта проблема случится?

Ответы [ 2 ]

3 голосов
/ 10 марта 2009

Вы должны никогда использовать double или float для хранения цен. Вместо этого используйте десятичную. Типы данных double и float не очень точны.

Типы данных FLOAT и REAL являются приблизительными типами данных для использования с числовыми данными с плавающей запятой. Данные с плавающей точкой являются приблизительными; не все значения в диапазоне типов данных могут быть точно представлены.

1 голос
/ 10 марта 2009

Значения NaN часто являются результатом деления на ноль - это будет первое, что я проверю.

...