以文本方式查看主题

-  搭建论坛  (http://bbs.diylsoft.com:8118/starforum/index.asp)
--  用户咨询  (http://bbs.diylsoft.com:8118/starforum/list.asp?boardid=4)
----  数值比较构件与表达式  (http://bbs.diylsoft.com:8118/starforum/dispbbs.asp?boardid=4&id=23974)

--  作者:玩脑者
--  发布时间:2009-4-19 10:30:10
--  数值比较构件与表达式

下面是星中帮助文件,构件数值比较的一个例程:

下面我们利用数值比较构件完成一个多条件比较的例子。当数值X大于等于0,小于10,或者大于50时满足条件,否则不满足条件。形如:0≤X<10 或X>50。

在项目窗口上拖放二个数值比较、数字编辑、普通标签和普通按钮构件。

属性设置:

数值比较1构件的数值_A属性设为“0”;数值_B属性设为“9”;下一个数值比较属性设为“数值比较2”。

注意:根据实例要求和数值比较构件的特点,数值_B要设为“9”,而不能是“10”。

数值比较2构件的数值_A属性设为“10”;数值_B属性设为“50”。

------------------------

这个例程中,X<10这个条件,在数值_B要设为“9”,这样是不是不够准确呢?如果输入值为9.9,9.99,9.91等等这样的数就会出现错误.

而在这个构件中“两值之间”的意思是含有等于意思。如数值A为‘0’,数值B为‘10’在两值之间相当于0≤X≤10。

那么,怎样才能准确的表达出0≤X<10这个表达式呢?


--  作者:admin
--  发布时间:2009-4-19 11:57:45
--  

这个很简单 这两个值是实数,你可以把“数值_B”设置为“9.9999”即可;

实例可参考:http://web.diylsoft.com/?ipe=./union/download/info&name=bstar


--  作者:玩脑者
--  发布时间:2009-4-19 13:22:12
--  

这样设置不就意味着已经约定小数点后的位数了吗?如果是一个动态计算所得的值呢,如果设置为:9.9999,而所得的值为:9.99991,这样所得的判断就错了。。。。


--  作者:admin
--  发布时间:2009-4-19 14:26:12
--  

计算结果的小数位 是可以控制的,二进制 和 十进制之间的计算结果肯定会产生误差的。


--  作者:引力波
--  发布时间:2009-4-19 14:51:41
--  
以下是引用admin在2009-4-19 11:57:45的发言:

这个很简单 这两个值是实数,你可以把“数值_B”设置为“9.9999”即可;

为什么不把数值比较构件增加"小于B"事件,“数值_B”设置为“10”,判断小于B就行了啊


--  作者:admin
--  发布时间:2009-4-19 17:01:03
--  
完全使用 “比较判断”也是可以的。
--  作者:minody
--  发布时间:2009-4-19 17:08:14
--  
本来很简单的东西变得复杂了,建议多增加几种判断关系,以方便用户
--  作者:admin
--  发布时间:2009-4-20 9:51:10
--  

到底“是否复杂”,考虑清楚再说!

把你的“假设”,做一个完整的过程模拟,然后再作出判断。


--  作者:玩脑者
--  发布时间:2009-4-20 10:22:42
--  
这个表达式用“比较判断”能解决的更好一点。。