2012-05-15 38 views
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小數點和如何做的結果我讓他們回到我變量?

回答

7

DECIMAL本身沒有任何小數位(實際上是DECIMAL(18,0))。您需要指定精度和比例,例如

DECLARE @percent DECIMAL(5,2); 
SET @percent = 1.0 * (100 * 39)/41; 
SELECT @percent; 
+0

呃!當然。只要我被允許,我會盡快選擇這個作爲我的答案。謝謝!! –

相關問題