在这个SO question中,OP 想要将 0 放在小数位上以获得他的结果。现在我给出的(下面)示例是用 DECIMAL 进行 CAST,然后用 FLOAT 进行 CAST。
例如
SELECT CAST(0.55 AS FLOAT)
使用上面的示例并在 SQL Server 2005/2008 中运行它似乎会得到正确的结果 0.55。但正如彼得在另一篇文章中指出的那样,在 SQL Server 2000 中运行它会产生 0.55000000000000004。
所以我的问题是:
在 SQL 中进行数据转换时,是否要不惜一切代价避免使用 FLOAT?
为什么在 SQL2k 中产生但
cast(0.55 as float)
在以后的版本中?0.55000000000000004
0.55
Microsoft 是否在更高版本的 SQL Server 中使用 FLOAT 更加可靠?
谢谢你的时间。