sql 转换为金钱四舍五入
Posted
技术标签:
【中文标题】sql 转换为金钱四舍五入【英文标题】:tsql casting to money rounds up 【发布时间】:2009-11-12 07:12:10 【问题描述】:将 varchar 值转换为 MONEY 时,会将值四舍五入到最接近的 0.10,如何防止这种四舍五入?
更新:我发现了问题。在子查询中,该值是从 varchar 转换为 FLOAT,然后我试图从 FLOAT 转换为 MONEY。
【问题讨论】:
【参考方案1】:请参阅 Brad Schulz 关于该主题的这篇非常有趣的博文:
Throw Your MONEY Away
出于各种原因,他甚至主张从不使用 MONEY 数据类型 - 有趣且启发灵感的阅读!
马克
【讨论】:
【参考方案2】:我不确定我是否理解您的问题。
查看下面的代码时
DECLARE @money AS MONEY,
@varchar AS VARCHAR(20)
SET @varchar = '1000.456789'
SELECT CAST(@varchar AS MONEY)
SELECT @money = @varchar
SELECT @money
它被四舍五入到最接近的小数点后第四位,而不是小数点后第一位。
【讨论】:
以上是关于sql 转换为金钱四舍五入的主要内容,如果未能解决你的问题,请参考以下文章
四舍五入 .NET DateTime 毫秒,因此它可以适应 SQL Server 毫秒