duckliuduck 发表于 2005-7-5 08:04:40

请版主帮看看我的脚本那里写错了和如何修改

obj_get_text("dw_1", fsje, 568, 158, 691, 187);       

obj_get_text("dw_1", yys, 693, 158, 779, 187);       

if(yys!=10.50)
{
report_msg("error1");
}
report_msg(yys*0.5*2);
report_msg(fsje*0.07);

if((fsje*0.07)!= (yys*0.5*2))
{
report_msg("error"&fsje*0.07&yys*0.5*2);
}
这两个数值通过乘上系数是一样的,通过report_msg提取也可以确定,可就是在最后一个if语句里被认为是不等的,为什么?
另外:对于PB数据窗提取数字还有别的办法么?

shyfish 发表于 2005-7-5 10:25:55

以前讨论过类似的问题,应该是系统本身的问题,也就是用2进制表示浮点类型是会有误差的,一般认为小于某个误差就相等了,比如取个1.0E-6:
if (abs(fsje * 0.07 - yys * 0.5 * 2) < 1.0e-6)   #WR没有取绝对值的abs函数自己写写

duckliuduck 发表于 2005-7-5 13:52:39

可是,这个函数怎么写呀,小弟刚刚开始用,还真的不会,老大多指点

duckliuduck 发表于 2005-7-5 14:15:40

先谢谢老大,小弟再问一下,你看我取数用的是具体坐标,有没有办法可以直接用第几行,第几列来取数

jacky8024 发表于 2005-7-11 12:24:25

可以,如果在表格中,可以直接用tbl_get_info来读取
页: [1]
查看完整版本: 请版主帮看看我的脚本那里写错了和如何修改