时空——王者之师
见图:
宏指令
macro_command main()float a,b,cGetData(a, "Local HMI", Lw, 0, 1)GetData(b, "Local HMI", Lw, 2, 1)c=a*bSetData(c, "Local HMI", Lw, 4, 1)end macro_command
计算结果有点误差
10000.5*110.7=1107055.35,怎么会有0.03的差别?
威纶通的赶紧来解释一下?
楼主最近还看过
又算了一些数,浮点值是不是数值越大,误差越大,当数值很大,带小数点时,连直接输入都不正常了!
simonwu675
他们在相乘的时候,会先把数字转换成二进制进行运算,运算出结果后又再转换成浮点数,所以造成了误差~
建议把数字处理成整型再进行运算,出结果后再转回去,这样可以避免误差;就是乘个系数之类的。
jiangwei5945
如果是都先乘以100,然后结果除以100后显示怎么样?
忠义--王者之师
引用 jiangwei5945 的回复内容: 如果是都先乘以100,然后结果除以100后显示怎么样?
xjh8888
精度决定的,32为浮点数有效位数只有7位
apmdeper
有效数只有7位是什么意思?