tsql铸造到金钱轮回 [英] tsql casting to money rounds up
本文介绍了tsql铸造到金钱轮回的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当将一个varchar值转换为MONEY时,它将值四舍五入到最接近的0.10,如何防止这种向上舍入?
更新:我发现了问题。在子查询中,值为CAST从varchar到FLOAT,然后我尝试从FLOAT到MONEY的CAST。
解决方案
查看下面的代码
<$> c $ c> DECLARE @money AS MONEY,
@varchar AS VARCHAR(20)
SET @varchar ='1000.456789'
SELECT CAST(@varchar AS MONEY)
SELECT @money = @varchar
SELECT @money
四舍五入到最接近的四分之一,而不是第一个十进制。
When casting a varchar value to MONEY it is rounding the value to the nearest 0.10, how do I prevent this rounding up?
UPDATE: I found the problem. In a subquery, the value is being CAST from varchar to FLOAT and then I was trying to CAST from FLOAT to MONEY.
解决方案
I am not sure i understand your problem.
When looking at the code below
DECLARE @money AS MONEY,
@varchar AS VARCHAR(20)
SET @varchar = '1000.456789'
SELECT CAST(@varchar AS MONEY)
SELECT @money = @varchar
SELECT @money
it gets rounded to the nearest 4th decimal, not the 1st decimal.
这篇关于tsql铸造到金钱轮回的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文