[ACCESS]單精準數運算Round取到小數位數問題

欄位運算透過Round設定取到小數2位時,顯示出來的卻超過小數2位?

最近有朋友在問,他使用Access當資料庫,欄位運算透過Round設定取到小數2位時,顯示出來的卻超過小數2位。

詢問他使用的欄位資料型態為單精準數,於是建立一個T1資料表來測試。建立3個欄位如下,

C1:單精準數
C2:單精準數
C3:雙精準數

資料分別輸入為

12001, 13,12001
23103, 13, 23103

image

 

然後建立以下的查詢

Select Round( C1/C2, 2) As C1_2, Round(C3/C2, 2) as C3_C2  From T1

結果,單精準數運算出來的結果,果然是超過小數2位,而雙精準數運算出來的結果,則是正常的,如下,

image

 

即然知道是因為資料型態所造成的問題,所以解決有2個,一個是將資料型態由「單精準數」改成「雙精準數」,或是運算時,轉成「雙精準數」也可以,如下,

Select Round( CDBL(C1/C2), 2) As C1_2, Round(C3/C2, 2) as C3_C2  From T1

image

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^