作者mouse0411 (mouse)
看板C_and_CPP
標題[問題] type的問題
時間Thu May 7 10:01:03 2009
請問大大高手們
我有一個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
1F:推 LPH66:因為那個結果其實是5.999999999999 05/07 10:08
2F:→ mouse0411:原來~請問大大~它是怎麼運作的?為何會是5.9999999? 05/07 10:12
3F:推 LPH66:就只是浮點數精確度誤差而已 05/07 10:14
4F:→ mouse0411:ok了解了~謝謝大大 05/07 10:15