tsql cast to money rounds up

时间:2009-11-12 07:12:10

标签: tsql casting currency

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

更新:我发现了问题。在子查询中,值是从varchar到FLOAT的CAST,然后我试图从FLOAT CAST到MONEY。

2 个答案:

答案 0 :(得分:6)

请参阅Brad Schulz关于这个确切主题的非常有趣的博客文章:

Throw Your MONEY Away

他主张从不使用MONEY数据类型有各种各样的原因 - 有趣且思想鼓舞人心的阅读!

马克

答案 1 :(得分:4)

我不确定我理解你的问题。

查看下面的代码时

DECLARE @money AS MONEY,
        @varchar AS VARCHAR(20)

SET @varchar = '1000.456789'

SELECT CAST(@varchar AS MONEY)
SELECT @money = @varchar
SELECT @money

它四舍五入到最接近的第4个小数,而不是第1个小数。