51Testing软件测试论坛
标题:
一个奇怪的问题
[打印本页]
作者:
cdd
时间:
2005-1-21 14:11
标题:
一个奇怪的问题
为什么在我的WinRunner上
3*647.60 不等于 1942.80
差别是:2.273736754e-013
谁帮试试看?谢谢!
if (3*647.60 == 1942.80)
tl_step("test",0,"pass");
else
tl_step("test",1,"fail");
作者:
shyfish
时间:
2005-1-21 17:58
记得在学C的时候曾听老师说过,对于float(或double)变量运算编程是受限于精度限制,会有一定的误差,不可能完全相等,小于一定的误差(多少就忘了)就可以视为相等,可以这样:
num = 3.0*647.6;
if ((num - 1942.8) < 1.0e-6)
pause("pass");
else
pause("fail");
作者:
cdd
时间:
2005-1-21 18:03
Winrunner应该处理过才对,像字符串和数字就不分类型的。
而且其他好多类似的算出来都没问题,换成4*647.6也没问题,怪!
作者:
生如火花
时间:
2005-1-21 22:15
应该是会有误差的
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2