SQL中如何保留數值相除後的小數位

  • 29903
  • 0
  • SSMS
  • 2011-03-26

今天做專案時,遇到一個問題當我試著下 sql語法如下結果回傳79,但用excel或小算盤算完的結果是79.8,奇怪為什麼sql 算完會沒有小數位數?

今天做專案時,遇到一個問題

當我試著下 sql語法如下

   1: select  21*228/60
   2:  from  dbo.table1

結果回傳79,但用excel或小算盤算完的結果是79.8

奇怪為什麼sql 算完會沒有小數位數?

原因是因為他會自動判斷若運算值皆為整數時,運算結果將會無條件捨去小數

所以就顯示不出來了,但這樣不對啊,我若需要小數位數怎麼辦?

有一個做法如下

   1: select round(cast(21 as float ) *228 /60,2) from table1

將其中一個整數做轉型成浮點數類型,例如cast (21 as float),這樣結果就會是正確的了!

image

 

感謝網友的回覆

網友亂馬客及wei的回覆,有提供更好的方法

直接將其中一位整數加上".0" 即可

例如 select 21.0*228/60 from dbo.table1

不錯,又學到一個了