威纶通官方论坛

数据精度问题

[复制链接]
发表于 2011-2-12 16:14:43 | 显示全部楼层 |阅读模式
[B]请问大家,我写了一个计算器程序,但是运算9除以6的时候,计算结果无法显示1.5,总是显示0。请问我的设置哪里有问题?  谢谢大家了![/B]
发表于 2011-2-14 21:32:15 | 显示全部楼层
请看看这样是否可以:
宏指令:
macro_command main()
short a,b,c,d
a=9
b=6
c=a/b
d=a%b
d=d*10
d=d/b
SetData(c,"Local HMI",LW,0,1)
SetData(d,"Local HMI",LW,1,1)
end macro_command
增加两个数值显示元件:LW0和LW1,两个元件设置成透明,中间加一个文本:点号,元件的格式设置成:16-bit Signed,执行宏指令试试。
发表于 2011-2-14 21:32:15 | 显示全部楼层
我试了下,结果等于1.5       
 楼主| 发表于 2011-2-14 21:32:15 | 显示全部楼层
有没有不用加“文本点”的方法?能否让结果出来后就是一个数并且就是小数形式?
发表于 2011-2-14 21:32:15 | 显示全部楼层
目前好像还没有
发表于 2011-2-14 21:32:15 | 显示全部楼层
用宏指令,将变量形式设置为浮点数。应该很简单:
Macro_command main()
float a,b,c
GetData(a,"Local HMI",LW,100,1)
GetData(b,"Local HMI",LW,102,1)
c=a/b
SetData(c,"Local HMI",LW,104,1)
end macro_command
设置2个数据输入元件(32位),比如LW100,LW102,并以浮点数显示LW104.
小数点后的显示位数可在LW104的数据显示格式任意设定
发表于 2011-2-14 21:32:15 | 显示全部楼层
用E8000,就可以解决了。
但是MT500就有问题了。
建议用E80003.45以上版本。
                  
您需要登录后才可以发帖 登录 | 注册

本版积分规则

回复帖子

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

GMT+8, 2024-12-31 03:52

Powered by Discuz! X3.4

© 2001-2023 Comsenz Inc.

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