我正在尝试确定在SQL中截断或删除额外小数位而不进行四舍五入的最佳方法。例如:
declare @value decimal(18,2)
set @value = 123.456
这将自动将@value
舍入为123.46
,这在大多数情况下都很好。然而,对于这个项目,我不需要它。有没有一种简单的方法可以截断我不需要的小数?我知道我可以使用left()
函数并将其转换回小数。还有别的办法吗?
发布于 2008-09-04 15:54:24
select round(123.456, 2, 1)
发布于 2009-05-05 19:58:29
SELECT Cast(Round(123.456,2,1) as decimal(18,2))
发布于 2009-02-12 22:54:23
以下是我能够截断而不是舍入的方法:
select 100.0019-(100.0019%.001)
返回100.0010
还有你的例子:
select 123.456-(123.456%.001)
返回123.450
现在,如果你想去掉结尾的零,只需对它进行转换:
select cast((123.456-(123.456%.001)) as decimal (18,2))
返回123.45
https://stackoverflow.com/questions/44046
复制相似问题