我正在研究一个java应用程序,使用double类型来保存unitprice,qty等的值。我发现在MSSQL中显示的这些值中的一些是NAN和throws 当我尝试重用它时出现无限错误。这太不合理了,我可以保存它但不能再使用它了!我认为MSSQL中的NAN值必须在它首次出现在java时有效,所以我可以保存。如何和何时这个问题发生了吗?
答案 0 :(得分:3)
你应该从不使用double或float来存储价格。请改用Decimal。 Double和float数据类型不是很精确。
FLOAT和REAL数据类型都是用于浮点数字数据的近似数字数据类型。浮点数据是近似值;并非数据类型范围中的所有值都可以精确表示。
答案 1 :(得分:1)
NaN值通常是除以零的结果 - 这将是我要检查的第一件事。