tsql铸造到金钱轮回 [英] tsql casting to money rounds up

查看:202
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆