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 に答える