db2- 2/5=0,而不是0.4? 這次換 db2?

摘要:db2- 2/5=0,而不是0.4? 這次換 db2?

之前小弟發表一篇「c#- 4/5=0,而不是0.8?」 http://www.dotblogs.com.tw/a-law/archive/2009/09/30/10839.aspx
發現在c# 中,要先把除數、被除數轉換成float型態的數值,再除才會是正確的!

而這次換成db2也有相同的情形,以下是小弟在Quest Central 測試的結果,提供各位參考
-------------------------------------------
values 2/5; => 0
values 5/3; => 1
values 5/5; => 1
-------------------------------------------
values double(2)/5; => 0.4
values double(5)/3; => 1.66666666666667
values double(5)/5; => 1
-------------------------------------------
values 2/double(5); => 0.4
values 5/double(3); => 1.66666666666667
values 5/double(5); => 1
-------------------------------------------

> 若被除數、除數都沒有轉成 Double、Decimal 型態的話,只會回傳結果中的整數值
> 若被除數、除數之一有轉成 Double、Decimal 型態的話,會回傳包括小數值的浮點數值