当前位置: 主页 > PLC控制

如何把字符串最终转换为浮点数

各位大师好:
1.比如我转换后字符串是‘00ABCD’,我想用ATH指令把它转换成16#00ABCD,在N接口我输的也是6,为什么结果却变成16#00ABCD00,这是为什么呢?
2.后来我用移位指令把后面的两个00去掉了变成了16#00ABCD,这样是否有问题,ATH
为什么加了两个0呢?
3.最后我再把16#00ABCD用CONV指令转换成整数为43981,结果是对的,但是我是有三位小数的,所以希望转换成43.981。我就用DIV除法指令除以1000,为什么不能显示小数部分呢,我要在上位机显示的,请问是否有更好的办法?请不吝赐教!谢谢!

最佳答案

1,因为ath是顺序执行的,执行完六个字符之后就结束了,剩下一个字节没有填充,所以会有00。
2,不要用move,用除法除以2^8。因为如果有符号位,直接用move,就不能正确显示负数。如果输入数据是无符号整数,那么只需要设置一下数据格式,见2个附件中的数据格式
3,将整数用CONV指令转为浮点数之后,再除以1000

图片说明:

如何把字符串最终转换为浮点数如何把字符串最终转换为浮点数6823FCf60ffbd1c78fa9d2e6083fd934BF4ee8c2ee4120cb32d0ccf34f87e785

提问者对于答案的评价:
非常感谢两位,两位的答案应该都是可以的

  • 关注微信

猜你喜欢

微信公众号