在这 SO question 操作人员想把0放到小数点后几位,作为他的结果。现在我给出的(下面)解决这个问题的例子是用十进制转换,然后用浮点转换。
例如
SELECT CAST(0.55 AS FLOAT)
使用上面的示例并在SQLServer2005/2008中运行它,可能会得到正确的结果0.55。但正如另一篇文章中彼得指出的那样,在SQL Server2000中运行它会产生0.55亿。
所以我的问题是:
当涉及到SQL中的数据转换时,是否要不惜一切代价避免浮动?
为什么 cast(0.55 as float) 产量 0.55000000000000004 在SqL2K中 0.55 在以后的EDTIONS中?
cast(0.55 as float)
0.55000000000000004
0.55
在SQL Server的较新版本中,Microsoft是否使使用float更可靠?
谢谢你抽出时间。
我个人的黄金法则是:避免漂浮。我不记得我最近几年用的是浮动。
我最近采取的所有业务方案都必须以固定的精度存储货币值或偶数,所以我更喜欢使用 DECIMAL 或 MONEY .
DECIMAL
MONEY