2009-11-12 61 views
2

当将一个varchar值转换为MONEY时,它将值舍入到最接近的0.10,我该如何防止这个舍入?tsql强制转换为金钱

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

回答

4

我不知道我明白你的问题。

当在代码看下面

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

SET @varchar = '1000.456789' 

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

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

6

见布拉德·舒尔茨这个非常有趣的博客帖子上,准确的话题:

Throw Your MONEY Away

他主张从来没有用这些钱的数据类型以各种理由 - 有趣和鼓舞人心的思想阅读!

Marc

+0

非常感谢您的联系! – abatishchev 2009-11-12 07:42:33

+0

很有意思,谢谢! – StevenMcD 2009-11-12 12:06:02