前言
在使用SOLIDWORKS Electrical或elecworks进行电气设计时,有时需要用户去编辑公式来满足个性化需求。
一般有以下使用场景:
1、工程配置中标注的公式编辑
2、自动生成的图纸名称的公式编辑
3、报表中列的公式编辑
每种场景可以应用的变量会有不同,但【功能】选项卡下的函数是相同的。
STR和ALLTRIM
今天我们给大家讲解其中一组经常配合使用的函数,分别是STR和ALLTRIM。
首先我们来了解下STR函数。
由于中文版中并未翻译函数的说明,根据英文我们得知STR函数的作用是将浮点数格式化成固定的精度和长度,长度不足则用空格补齐。
在示例-->结果栏列中,出现了乱码,正确的显示应该是STR(10.523)-->' 10'。其中单引号中的全部内容为结果,并不只是数字10,在10之前还有8个空格,总共10个字符。
一般我们在使用时会在函数中添加其他参数,如STR(10.523,10,0),结果:' 10',与STR(10.523)相同的结果。
在STR(10.523,10,0)中,
10.523:被处理的数
10:字符长度(若不写,默认是10)
0:精度,精确到小数点后的位数(若不写,默认是0)
在此例中,精确到小数点后0位,10.523变为10,而长度为10,需要在10前面增加8个空格补齐,最终变成' 10'。
有了空格以后,就需要将空格去掉,所以在软件内置的一些公式中我们经常看到如下用法。
下面我们来了解一下ALLTRIM函数:
根据英文说明和示例我们得知ALLTRIM函数的作用是去掉字符串开头和结尾的空格。
我们以10.523为例,在刚才的基础上加上ALLTRIM函数。
此时10前面的空格就去掉了,只剩下2个字符的10。
拓展
有没有办法只用STR函数就能实现ALLSTRIM(STR())组合函数的效果?
在瓴沃科技项目实施过程中,我们总结出了一个简单的用法。
以10.523精确到小数点后2位为例:
在我们的方法中,最重要的是将字符长度设置为1。由于STR函数的运行优先进行精度计算,将10.523变为10.52,再来计算字符长度,此时字符长度为5(小数点计算在内),大于我们设置的1,则按此时长度更长(5)的显示,若精度计算后的长度小于设置的长度,则用空格补齐。
设置为1,是因为精度计算后的长度必然大于或等于1,确保精度计算后的结果的长度是最长的,这样就不会用空格补齐,也就不需要再使用ALLTRIM函数去除空格了。
在使用STR公式的时候,我们常常会忽略空格,在可用的函数列表中,有一个函数与STR类似,但结果更容易理解,那就是STRZ函数。
以10.523精确到小数点后0位,字符长度为10为例:
由上图我们可以看到,不足的长度部分用8个数字0补齐。
总结
1、STR函数用于精确小数点位数,但有可能由于设置的长度过长,会自动加上空格补齐。
2、STR函数并无四舍五入功能,仅省去精度后面的数字。
3、ALLTRIM函数用于去除字符串开头和结尾的空格,并不能去除字符串中间的空格。
4、STR函数中的字符串长度设置为1,可不需要再使用ALLTRIM函数去除空格。
领取专属 10元无门槛券
私享最新 技术干货