“ 全文共1100字,1视频,预计阅读15分钟。”
目录
1、介绍
2、文字对比
3、数字对比
4、视频讲解
1、介绍
在Plant Simulaiton中,编程时会遇到比较大小写字母、小数,有时候我们需要将同一字母的大小写认为是相等的,或者X位小数位的数字是相等的,那么我们可以怎么做呢?往期介绍过Plant Simulation中的运算符,大家也可以去看看其他的运算符:Plant Simulation编程语言SimTalk中的运算符
2、文字对比
方法1:将所有的字母都转换为大写/小写,然后再对比。这种方法可能是很多人用的方法,我就不详细介绍,只写个示例,大家看一下。
//下面这行代码就是将所有的字母转为小写,再进行比较
//结果是true
print toLower("CHINA") = toLower("China")
方法2:使用软件自带的运算符,约等于(~=)。
这种方法是软件自带的一个运算符,在比较两个字母的时候,使用其对应的ASCII码进行比较,或者你也可以理解成是方法1的逻辑。
print "CHINA" = "China" //false
print "CHINA" ~= "China" //true
当然,除了比较是否相等,还可以比较大小
print "CHINA_B" <= "China_a"
//结果true
//直接对比,ASCII中B是小于a的
print "CHINA_B" <~= "China_a"
//结果false
//使用约等于后,可以理解成B~=b>a
print tolower("CHINA_B") <= tolower("China_a")
//结果false
//使用转换小写后验证
3、数字比较
在比较数字的时候,有些情况我们需要认为0.11=0.10,就是忽略1位小数位后的数字(不是四舍五入),这种情况下,也有两种方法进行比较。
方法1:将数字向下取到某位,然后比较。在这种方法中就是先对数字进行处理,然后比较,有多种方法对数字进行向下取数,这里介绍一种。这里使用四舍五入的函数,变相的向下取数。大家可以测试一下。
print round(1.55055-0.005,2)
print round(1.55955-0.005,2)
print round(1.55055-0.005,2) = round(1.55955-0.005,2)
//结果为true
方法2:依然使用约等于(~=)。在对数字进行比较时,这里的约等于需要设置阈值,即小于阈值的数字不进行比较。怎么设置阈值呢?大家看图,在文件-首选项/模型设置-仿真中进行设置。
如图,我设置的阈值是0.1,即第二位小数及以后的数字在比较时,忽略不计。看下列代码:
print 0.1 ~= 0.11
print 0.1 ~= 0.19
//以上的结果都是true
4、视频讲解
微信公众号同名文章
希望大家多多留言哦