首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在SQL Server中截断(非舍入)小数位数

在SQL Server中截断(非舍入)小数位数
EN

Stack Overflow用户
提问于 2008-09-04 15:50:42
回答 18查看 713.8K关注 0票数 210

我正在尝试确定在SQL中截断或删除额外小数位而不进行四舍五入的最佳方法。例如:

代码语言:javascript
复制
declare @value decimal(18,2)

set @value = 123.456

这将自动将@value舍入为123.46,这在大多数情况下都很好。然而,对于这个项目,我不需要它。有没有一种简单的方法可以截断我不需要的小数?我知道我可以使用left()函数并将其转换回小数。还有别的办法吗?

EN

回答 18

Stack Overflow用户

回答已采纳

发布于 2008-09-04 15:54:24

代码语言:javascript
复制
select round(123.456, 2, 1)
票数 203
EN

Stack Overflow用户

发布于 2009-05-05 19:58:29

代码语言:javascript
复制
SELECT Cast(Round(123.456,2,1) as decimal(18,2))
票数 44
EN

Stack Overflow用户

发布于 2009-02-12 22:54:23

以下是我能够截断而不是舍入的方法:

代码语言:javascript
复制
select 100.0019-(100.0019%.001)

返回100.0010

还有你的例子:

代码语言:javascript
复制
select 123.456-(123.456%.001)

返回123.450

现在,如果你想去掉结尾的零,只需对它进行转换:

代码语言:javascript
复制
select cast((123.456-(123.456%.001)) as decimal (18,2))

返回123.45

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档