软件测试第一次作业-曾经印象深刻的Bug

时间:2022-11-10 16:44:44

令我印象最深刻的一次Bug,是在使用c++做作业时,需要用到一个if语句来判断某个浮点数是否等于1,于是我天真的写下了如下代码:

if(f == 1)
    do something;

然而结果却并不令人满意,运行结果时对时错。我冥思苦想了很长一段时间,最后才恍然大误:记得老师在课上曾经讲过,浮点数在计算机内的存储并不是精确的,1有可能变成了0.99999999999999999999。于是对if语句做了如下修改,便能得到正确答案了:

if(abs(f - 1) < 0.00001)
    do something;