威纶通官方论坛

浮点数转整数过程

  [复制链接]
发表于 2015-1-12 20:46:22 | 显示全部楼层
强制类型转换,C语言里,=左边是定义成类型,=右边计算结果最终会强制成同一类型。basic也会继承这一规则
发表于 2015-1-12 20:53:28 | 显示全部楼层
送大家一个浮点转2个16位unsinged short ,MODBUS通信有用
float  f
unsinged short n1,n2
n1= f / 65535
n2= f - n1 * 65535

modbus上位机接收到n1,n2后再还原
float f
f=n1 * 65536 + n2
(另:威纶通小数部分直接丢失,没有4舍5入,奇怪!)
发表于 2015-1-12 20:55:25 | 显示全部楼层
错了,是65535
f=n1 * 65535 + n2
 楼主| 发表于 2015-3-24 22:03:00 | 显示全部楼层

是一个人。就是我。
发表于 2015-3-27 16:22:00 | 显示全部楼层
macro_command main()
int a
float b
GetData(b, "Local HMI", LW, 0, 1)
a=b
b=b-a
if b>=0.5 then
a=a+1
end if
SetData(a, "Local HMI", LW, 2, 1)
end macro_command
四舍五入~~
您需要登录后才可以发帖 登录 | 注册

本版积分规则

回复帖子

Archiver|小黑屋|威纶通官网 ( 粤ICP备06054553号 )

GMT+8, 2024-5-8 06:13

Powered by Discuz! X3.4

© 2001-2023 Comsenz Inc.

快速回复 返回顶部 返回列表