代码之家  ›  专栏  ›  技术社区  ›  kevchadders

在SQL Server 2000/2005/2008中如何使用浮点转换小数位数

  •  1
  • kevchadders  · 技术社区  · 15 年前

    在这 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中?

    • 在SQL Server的较新版本中,Microsoft是否使使用float更可靠?

    谢谢你抽出时间。

    1 回复  |  直到 12 年前
        1
  •  1
  •   Rubens Farias    15 年前

    我个人的黄金法则是:避免漂浮。我不记得我最近几年用的是浮动。

    我最近采取的所有业务方案都必须以固定的精度存储货币值或偶数,所以我更喜欢使用 DECIMAL MONEY .