看板 Database 關於我們 聯絡資訊
DB:MSSQL2000 有一個VIEW如下: select 出庫數,入庫數,入庫數 - 出庫數 as 結存 from 庫存量 出庫數 入庫數 結存 =========== 0 2 2 1.998 0 -1.998 其中出庫數與入庫數皆是float 請問為什麼這時候,當我下 select sum(結存) as 結存 from View 得到的答案卻是1.99999999999978E-04 而不是2+(-1.998) = 0.002呢? 如果我sum(出庫數),sum(入庫數),sum(入庫數)-sum(出庫數)都能正確得到1.998,2,0.002 這3個數字 請各位大大解惑@@ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.248.17.41
slalala:group by? 10/18 20:33
grence:現在沒得實驗,感覺是float不準,轉成decimal再sum試試看 10/18 21:13
Adonisy:這種欄位怎麼會用float? 10/18 22:38
abcf:FLOAT常常會發生這種問題喔 你去資料庫看其實數字是正確的 但 10/18 23:39
abcf:加減乘除之後有時會這樣 忘記是改成decimal或double才會正確 10/18 23:40
TonyQ:這答案從估計值的角度來看是對的 E-04 是10^-4 :p 10/19 22:56
mindscold:為什麼會用float...我想這個問題連原開發者也忘了…Orz 10/20 13:42
mindscold:把欄位改成Decimal後就解決了 謝謝大家 10/20 15:12