[問題] type的問題

看板C_and_CPP (C/C++)作者 (mouse)時間16年前 (2009/05/07 10:01), 編輯推噓2(202)
留言4則, 2人參與, 最新討論串1/1
請問大大高手們 我有一個function double log2(double value) { return log(value)/log(2); } 今天用到這個function時 main() { int x=(int)log2(64.0); } 然後我用F10去單步看結果時 發現log2回傳6.000000 但是x=5?????? 會是強制轉換出了什麼問題嗎? 想請問大大們小弟是出了什麼錯 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.124.42.3

05/07 10:08, , 1F
因為那個結果其實是5.999999999999
05/07 10:08, 1F

05/07 10:12, , 2F
原來~請問大大~它是怎麼運作的?為何會是5.9999999?
05/07 10:12, 2F

05/07 10:14, , 3F
就只是浮點數精確度誤差而已
05/07 10:14, 3F

05/07 10:15, , 4F
ok了解了~謝謝大大
05/07 10:15, 4F
文章代碼(AID): #1A0a3Ww4 (C_and_CPP)
文章代碼(AID): #1A0a3Ww4 (C_and_CPP)