1

在这个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.550000000000000040.55

  • Microsoft 是否在更高版本的 SQL Server 中使用 FLOAT 更加可靠?

谢谢你的时间。

4

1 回答 1

1

我个人的黄金法则是:避免浮动。我不记得自己近年来使用浮动。

我最近采用的所有业务场景都必须存储货币值,甚至是具有固定精度的数字,所以我更喜欢使用DECIMALor MONEY

于 2009-12-02T10:00:25.333 回答