在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2975|回复: 9

[求助] skill脚本,两个变量值明明相等,程序确一直报说不相等是什么原因

[复制链接]
发表于 2012-11-21 16:46:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
今天写SKILL语言的一个程序
两个浮点数变量比如a和b,a = width1-widht2, b也类似
用println打印出来发现值是一样大的,但在if中判断
这两个值是否一样大时,程序始终报说不一样大,
这种问题怎么解?
代码大概是这样
a = width1-widht2
b = height1-height2
if( a != b
    then
    println( a )
    println( b )
    println("ERROR")
    )
根据输出结果看,a 和 b 实际上是一样大的
 楼主| 发表于 2012-11-21 17:26:07 | 显示全部楼层
原因找到了,就是解不掉
list1 = list(23.875 29.995 26.935 26.935 29.995 23.875)
list1 = sort(list1 'lessp)
/*list1  = (23.875 23.875 26.935 26.935 29.995 29.995 ) */
x_space = nth(2 list1)-nth(0 list1)
y_space = nth(4 list1)-nth(2 list1)
if( x_space != y_space
     then
     println( x_space )
     println( y_space )
     println("XXXX")
     )
输出结果
3.06
3.06
"XXXX"
 楼主| 发表于 2012-11-21 19:46:11 | 显示全部楼层
顶一下 求高人来解
发表于 2012-11-26 10:10:55 | 显示全部楼层
x_space - y_space = -3.552714e-15 所以它们并不相等的。
一般不能那样做判断的 一般是用一个数比较大小|x_space - y_space|< X 那么就判断x_space = y_space,这个X的取值就你自己定了
发表于 2012-11-27 12:07:50 | 显示全部楼层
浮点数不能直接比较,一般都是两个数相减它们的绝对值小于一个非常小的数(比如:0.00001)就认为他们相等。
 楼主| 发表于 2012-12-3 08:12:11 | 显示全部楼层
谢谢 懂了
 楼主| 发表于 2012-12-3 08:12:45 | 显示全部楼层
谢谢 懂了
 楼主| 发表于 2012-12-3 08:13:25 | 显示全部楼层
谢谢楼上几位 懂了
发表于 2012-12-3 11:20:36 | 显示全部楼层
5楼正解 浮点数不能直接比较
发表于 2014-3-28 12:55:59 | 显示全部楼层
回复 1# shinefuture


    亲,有没有能改模块距离的skill啊?就是m很大的时候,它默认每个cell距离时1,我想让它变成1.8。还有怎么学习skill啊!一直摸不到头绪!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 13:55 , Processed in 0.032997 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表