0

我正在开发一个 java 应用程序,使用 double 类型来保存 unitprice、qty 等的值。我发现 MSSQL 中显示的一些值是 NAN,当我尝试重用它时会抛出无限错误。这太不合理了,我可以保存它但不能再使用它了!我认为 MSSQL 中的 NAN 值在它首次出现在 java 中时必须是有效的,所以我可以保存。这个问题是如何以及何时发生的?

4

2 回答 2

3

你不应该使用double 或 float 来存储价格。请改用十进制。Double 和 float 数据类型并不是很精确。

FLOAT 和 REAL 数据类型都是用于浮点数值数据的近似数字数据类型。浮点数据是近似的;并非数据类型范围内的所有值都可以精确表示。

于 2009-03-10T07:49:22.930 回答
1

NaN 值通常是除以零的结果——这将是我要检查的第一件事。

于 2009-03-10T08:26:30.000 回答