日期:2014-05-18  浏览次数:20448 次

關於小數位處理的問題。
SQL code

select Cast(3.88 As Decimal(10,2))*Cast(83.87 As Decimal(10,2)),
       Cast(Cast(3.88 As Decimal(10,2))*Cast(83.87 As Decimal(10,2)) As Decimal(10,2)),
       Cast(3.88 As Decimal(10,2))*Cast(27.9 As Decimal(10,2))*2,
       Cast(Cast(3.88 As Decimal(10,2))*Cast(27.9 As Decimal(10,2))*2 As Decimal(10,2))

--325.4156  325.42  216.5040  216.50


上面是在查詢分析器裏面測試的,沒有問題。
但是我在視圖裏面:
Cast(Cast(3.88 As Decimal(10,2))*Cast(83.87 As Decimal(10,2)) As Decimal(10,2))
結果為325.4
Cast(Cast(3.88 As Decimal(10,2))*Cast(27.9 As Decimal(10,2))*2 As Decimal(10,2))
結果為216.5
問題1、保留的2位小數爲什麽只有1位了?

但是這個字段其它地方又有2位小數的地方,如
3.88*159.85=620.218顯示為620.22
3.88*42.98*2=333.5248顯示為333.55(這裡是不是有問題?應該是333.52啊)
小數位好像一直有誤差,要麽多,要麽少。數據量大了,這個誤差可就大了。
問題2、怎麽才能讓表或者視圖字段裏面顯示的數據都是保留2位小數,而不是有的一位有的兩位。



------解决方案--------------------
看看你的视图。。