2017-05-15 77 views
-1

十進制數據類型,精度= 10,刻度= 2, 實際在@Bvisits值= 8.00SQL服務器十進制數據類型的問題在表長度= 9

declare @Bvisits decimal,@ActualVisit decimal,@Ptax decimal = 1.995; 
select @Bvisits = BalanceVisit from PakacgeTb where PackageID = 25306; 

set @ActualVisit = @Bvisits - @Ptax; 

select @ActualVisit as VIP 

結果爲6。

但是,因爲我在真正的存儲過程中使用它更新結果爲4.67而不是6爲什麼即使我使用1.9而不是1.995發生問題仍會發生。

+0

您發佈的代碼有沒有* *精度或標定義的,這意味着它們有缺省值。無論你讀什麼,都會被轉換爲defatul的精度和規模。無論如何,發佈*可重現的例子*。這意味着,你必須張貼表架構,並顯示實際值 –

+0

@PanagiotisKanavos我發現問題是在我的存儲過程,而不是數據類型十進制 –

回答

0

嘗試這樣的:

declare @Bvisits decimal(10,3),@ActualVisit decimal(10,3),@Ptax decimal(10,3) = 1.995; 
select @Bvisits = BalanceVisit from PakacgeTb where PackageID = 25306; 

set @ActualVisit = @Bvisits - @Ptax; 

select @ActualVisit as VIP 
+0

仍然同樣的問題 –

+0

創建了一個新表,並在其上測試完美在十進制但在這張桌子上不會工作..? –

+0

什麼是PakacgeTb表中的「BalanceVisit」的數據類型 –