1

我在这里想念什么?

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 小数点发生了什么?如何将它们放回我的变量中?

4

1 回答 1

7

DECIMAL它本身没有任何小数位(实际上是DECIMAL(18,0))。您需要指定精度和比例,例如

DECLARE @percent DECIMAL(5,2);
SET @percent = 1.0 * (100 * 39) / 41;
SELECT @percent;
于 2012-05-15T20:05:59.100 回答