Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
tsql铸造到钱轮_Tsql_Casting_Currency - Fatal编程技术网

tsql铸造到钱轮

tsql铸造到钱轮,tsql,casting,currency,Tsql,Casting,Currency,将varchar值转换为货币时,它将值四舍五入到最接近的0.10,如何防止这种四舍五入 更新:我发现了问题。在子查询中,值从varchar转换为FLOAT,然后我尝试从FLOAT转换为MONEY。我不确定我是否理解您的问题 当查看下面的代码时 DECLARE @money AS MONEY, @varchar AS VARCHAR(20) SET @varchar = '1000.456789' SELECT CAST(@varchar AS MONEY) SELECT @m

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


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

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

当查看下面的代码时

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

SET @varchar = '1000.456789'

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

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

请参阅布拉德·舒尔茨(Brad Schulz)关于这个主题的这篇非常有趣的博文:

他主张,出于各种原因,甚至从不使用MONEY数据类型——有趣且发人深省

马克