# Fax Order No. 4
set_window ("Fax Order No. 4", 3);
edit_get_text("# Tickets:",tickets);
edit_get_text("Ticket Price:",price);
edit_get_text("Total:",total);
# check that total tickets price is calculated correctly
if(tickets*price == total)
tl_step("total",0,"total is correct,"tickets"乘"price"等于"total"");
else tl_step("total",1,"total is incorrect,"tickets"乘"price"不等于"total"");
button_press ("Cancel");
}
ddt_close(table);
运行到标红的地方时,就从表里提取不同的order_num值(订单号),比如:2、4、6,每个值就打开相应的订单内容,里面包括单张机票价、共订了几张,合计多少钱等信息,然后,脚本的末尾处有个简单的判断,看合计是否等于票价*张数,当打开2号订单时,price=647.60,tickets=3,total=1942.80,可是实际运行结果为“total is incorrect,3乘647.60不等于1942.80”,不知道为什么会报错误,乘积是对的阿?其他几个订单的乘积就没有问题。
不知道这次说清楚,我是自己学的测试,没有给公司或谁上报过bug,更不知道怎样上报才是符合规范的,所以请大家谅解了,我也非常希望哪位大虾可以指点下阿,偶将不胜感激。
述清楚吧, 否则别人怎么修改BUG.作者: testzhu 时间: 2006-11-6 10:38
顶上去作者: 小李美刀 时间: 2006-11-6 12:02 标题: I copy your script and run it , the result is OK, no any error showing up. I copy your script and run it , the result is OK, no any error showing up.
win_activate("Fax Order No. 56");
set_window ("Fax Order No. 56", 3);
edit_get_text("# Tickets:",tickets);
edit_get_text("Ticket Price:",price);
edit_get_text("Total:",total);
# check that total tickets price is calculated correctly
if(tickets*price == total)
tl_step("total",0,"total is correct,"tickets"乘"price"等于"total"");
else tl_step("total",1,"total is incorrect,"tickets"乘"price"不等于"total"");
# button_press ("Cancel");作者: testzhu 时间: 2006-11-6 14:41
我输入其他的任何一个order_num都成功,但是order_num为2的时候就不行,能不能帮我试一下2号订单的结果还是correct吗?拜谢~~~~sdlkfj1作者: gp_jl 时间: 2006-11-6 22:40
以前,有过类似的帖子。输入2的时候,确实failed。
关注ing。。。作者: shyfish 时间: 2006-11-10 21:25
以前也有过类似的帖子讨论,可能是计算机在处理浮点类型变量的时候不精确所致。一般可以设定一个容错范围:比如1.0e-5,2个浮点值的差值小于这个值认为是二者相等。试一下吧作者: mln1014 时间: 2006-11-15 15:19
确实是由于浮点类型的精度问题所引起的,你可以把tickets*price的值取出来,再把total的值取出来进行比较,就会发现原来只是差小数点后面一个0而已作者: langhua553 时间: 2012-8-3 17:07
这个问题我也遇到了,没有人能解决吗?
我将2这个订单数量修改成4,测试通过了,但改成3测试不通过,,真不知道为什么,。
为什么这里没有一个转换为浮点的函数,只有INT,,
真不知道如何解决!