lzhpsky
工控小菜鳥
級別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 1045 個
工控威望: 1151 點
下載積分: 2796 分
在線時間: 767(小時)
注冊時間: 2009-08-02
最后登錄: 2024-10-16
查看lzhpsky的 主題 / 回貼
樓主  發(fā)表于: 2010-12-03 12:42






    我現(xiàn)在快暈了,大家看,為什么VD708和VD28的數(shù)據(jù)都是1.64,程序就是不通呢?為什么在狀態(tài)表里監(jiān)控?zé)o符號數(shù)據(jù)時不一樣?換成監(jiān)控浮點數(shù)的話,就都是1.64了,為什么?上面的程序VD708我已經(jīng)四舍五入了,取小數(shù)點后2位了,數(shù)據(jù)是1.64,VD28是設(shè)定的數(shù)據(jù),也是保留小數(shù)點后2位,但是為什么都相等了,就是不通呢?哪位高手指點一下,謝謝
sjm213
有小知識,無大學(xué)問。
級別: 論壇版主

精華主題: 7 篇
發(fā)帖數(shù)量: 5196 個
工控威望: 7419 點
下載積分: 158550 分
在線時間: 3152(小時)
注冊時間: 2007-11-21
最后登錄: 2024-11-07
查看sjm213的 主題 / 回貼
1樓  發(fā)表于: 2010-12-03 16:25
VD28是如何轉(zhuǎn)換過來的?
浮點數(shù)精度過高,直接用==R很容易出現(xiàn)這個情況。
就像監(jiān)控時這樣,用浮點數(shù)監(jiān)控都是1.64,但實際上其數(shù)值并非完全一樣,所以程序比較出來兩者不相等。
建議將浮點數(shù)轉(zhuǎn)換為整數(shù),用整數(shù)比較指令。
或者設(shè)定一個小誤差范圍,如用<=R VD708 1.641 替代==R