我在这里缺少什么?
select cast ( ( cast (100 * 39 as decimal ) / 41) as decimal(5,2))
给出95.12的结果
但是
declare @percent decimal
set @percent = cast ( ( cast (100 * 39 as decimal ) / 41) as decimal(5,2))
select @percent
得到95的结果
两个2小数点发生了什么,如何让它们回到变量中?
答案 0 :(得分:7)
DECIMAL
本身没有任何小数位(实际上是DECIMAL(18,0)
)。您需要指定精度和比例,例如
DECLARE @percent DECIMAL(5,2);
SET @percent = 1.0 * (100 * 39) / 41;
SELECT @percent;