MSSQL 中浮点字段中的 NaN 值
我正在开发一个java应用程序,使用双精度类型来保存单价、数量等的值。我发现MSSQL中显示的一些值是NAN并抛出异常 当我尝试重用它时出现无限错误。这太不合理了,我可以保存它,但不能再使用它了!我认为MSSQL中的NAN值在它第一次出现在java中时必须是有效的,所以我可以保存。如何以及何时这个问题发生吗?
I'm working on a java application,use double type to save value of unitprice,qty etc.I found some of these values show in MSSQL are NAN and throws
infinite error when I try to reuse it.This is so unreasonable,I can save it but can not use it anymore!I think the NAN value in MSSQL must be valid when it first presence in java,so i can save.How and when this issue happen?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您不应该永远使用 double 或 float 来存储价格。 请改用十进制。
双精度和浮点数据类型并不是非常精确。
FLOAT 和 REAL 数据类型都是与浮点数值数据一起使用的近似数字数据类型。 浮点数据是近似值; 并非数据类型范围内的所有值都可以精确表示。
You should never use double or float to store prices. Use Decimal instead.
Double and float datatypes are not really precise.
FLOAT and REAL data types are both approximate number data types for use with floating point numeric data. Floating point data is approximate; not all values in the data type range can be precisely represented.
NaN 值通常是除以零的结果 - 这将是我要检查的第一件事。
NaN values are often the result of dividing by zero - this would be the first thing I'd check for.