在 SQL Server 中获取 n 个小数位,不带四舍五入



我只需要从SQL Server中的十进制值中选择两位数字

16.987490   --> 16.98
8.0189918   -->  8.01
34.5566901  --> 34.55

最简单的方法是减去 0.005 并使用 round()str()cast()

select round(val - 0.005, 2)

您可以使用ROUND

select CAST(ROUND (16.987490  , 2 , 1 ) as NUMERIC(18,2))
select CAST(ROUND (8.0189918  , 2 , 1 ) as NUMERIC(18,2))
select CAST(ROUND (34.5566901  , 2 , 1 ) as NUMERIC(18,2))

输出

16.98
8.01
34.55
declare @dec decimal(15,5)
set @dec = 16.987490
select cast(@dec as decimal(19,2))

因此,解决方案是"强制"转换为 2 级。

解决方案 2 因为第一个不起作用:

declare @dec decimal(15,5)
set @dec = 8.0189918
select cast(substring(cast(@dec as varchar(50)), 0, CHARINDEX('.', cast(@dec as varchar(50)), 1) + 3) as decimal(19,2))

相关内容

  • 没有找到相关文章

最新更新