这个取决于威纶通使用的宏编译器. 一般的编译器按你的写法计算出来, 结果都会是4.0. 但是如果你写成 24.0/5 或 24/5.0或24.0/5.0, 结果就会是4.8了. 编译器计算时, 会根据变量的类型, 自动按最高级的数据类型进行计算, 把低级的数据转化为高级的数据后进行计算. 写成 24/5都是整型, 会按整型进行计算, 最后赋值给a的时候进行数值类型转换, 所以只有4.0了.
你按这样写, 就会变成4.8, 因为a已经被赋值24了, 在赋值时会强制转换为浮点数24, 后续计算时, 由于a已经是浮点数, 5会先被强制转换为浮点数后再进行计算.
macro_command main()
float a = 24
a = a / 5
SetData(a, "Local HMI", LW, 2, 1)
end macro_command
所以要用好宏, 可以先去学习一下高级语言编程, 以免一不小心踩在坑中. |