【问题标题】:tsql casting to money rounds upsql 转换为金钱四舍五入
【发布时间】:2009-11-12 07:12:10
【问题描述】:

将 varchar 值转换为 MONEY 时,会将值四舍五入到最接近的 0.10,如何防止这种四舍五入?

更新:我发现了问题。在子查询中,该值是从 varchar 转换为 FLOAT,然后我试图从 FLOAT 转换为 MONEY。

【问题讨论】:

    标签: tsql casting currency


    【解决方案1】:

    请参阅 Brad Schulz 关于该主题的这篇非常有趣的博文:

    Throw Your MONEY Away

    出于各种原因,他甚至主张从不使用 MONEY 数据类型 - 有趣且启发灵感的阅读!

    马克

    【讨论】:

      【解决方案2】:

      我不确定我是否理解您的问题。

      查看下面的代码时

      DECLARE @money AS MONEY,
              @varchar AS VARCHAR(20)
      
      SET @varchar = '1000.456789'
      
      SELECT CAST(@varchar AS MONEY)
      SELECT @money = @varchar
      SELECT @money
      

      它被四舍五入到最接近的小数点后第四位,而不是小数点后第一位。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-06-02
        • 1970-01-01
        • 2011-02-08
        • 2011-09-10
        • 2023-03-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多