登录
首页 PLC论坛 施耐德电气PLC
回帖 发帖
正文

主题:[每日小技巧 191011] SoMachine中如何保留浮点数特定的小数位数

点击:1142 回复:6

在日常编程时有时会在进行算数运算时只需要保留小数点后两位或者三位的情况,不需要太多的小数位,在SoMachine中没有专门的功能块来保留固定的小数位数,需要通过编程来实现,不过编程也很简单。
以保留小数点后2位来距离,只需要将原来的real类型变量,乘以100,取整后再除以100即可,程序如下,a为处理前的数,b为保留了2位小数后的数;
附件 TIM截图20191011145031.jpg
19-10-11 14:51

引用 weicy007 在 2019/10/11 14:51:39 发言【内容省略】

我个人认为可以先把REAL转换为STRING,然后使用字符串操作函数根据需要保留的位数来返回对应的字符,之后将STRING转换为REAL,这样用户只要给出REAL和需要保留的位数即可。
附件 workpicture1.jpg
附件 workpicture2.jpg
Good Luck~
最后修改:2019/10/11 16:09:42
19-10-11 15:22
太感谢了,这个确实非常好。
19-10-12 15:55
办法比困难多,好方法表情
19-11-14 17:50
您好,按您的程序我测试了一下,保留3位以内的小数,是可以的,超过3位以后,程序就不起作用了,您那边可以测试一下
附件 BaiduShurufa_2020-6-13_16-36-3.jpg
附件 BaiduShurufa_2020-6-13_16-37-5.jpg
20-06-13 16:40
基于浮点数的表示方法,浮点数其实没法精确控制小数位数。楼上两位的做法,转回real的时候,其实还是出来多位的,因为原理就是这样的。所以要么用整数分别表示整数部分和小数部分,要么就在显示时处理。或者在整体算法上考虑。。。。。不知道我说清楚没有。
20-06-17 19:03
测试了一下..确实3位再多就不好用了~~
不知道为什么
20-10-16 15:29

工控新闻

更多新闻资讯