作者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