lzhpsky
工控小菜鳥
級別: 論壇先鋒
精華主題: 0
發帖數量: 1050 個
工控威望: 1159 點
下載積分: 2815 分
在線時間: 769(小時)
注冊時間: 2009-08-02
最后登錄: 2025-06-05
查看lzhpsky的 主題 / 回貼
樓主  發表于: 2010-12-03 12:42






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

精華主題: 7 篇
發帖數量: 5291 個
工控威望: 7517 點
下載積分: 161368 分
在線時間: 3238(小時)
注冊時間: 2007-11-21
最后登錄: 2025-07-12
查看sjm213的 主題 / 回貼
1樓  發表于: 2010-12-03 16:25
VD28是如何轉換過來的?
浮點數精度過高,直接用==R很容易出現這個情況。
就像監控時這樣,用浮點數監控都是1.64,但實際上其數值并非完全一樣,所以程序比較出來兩者不相等。
建議將浮點數轉換為整數,用整數比較指令。
或者設定一個小誤差范圍,如用<=R VD708 1.641 替代==R
lzhpsky
工控小菜鳥
級別: 論壇先鋒
精華主題: 0
發帖數量: 1050 個
工控威望: 1159 點
下載積分: 2815 分
在線時間: 769(小時)
注冊時間: 2009-08-02
最后登錄: 2025-06-05
查看lzhpsky的 主題 / 回貼
2樓  發表于: 2010-12-03 17:51
謝謝版主,明白了,謝謝你
yuming1231
工控我愛你
級別: 略有小成
精華主題: 0
發帖數量: 158 個
工控威望: 435 點
下載積分: 917 分
在線時間: 160(小時)
注冊時間: 2010-11-15
最后登錄: 2018-08-24
查看yuming1231的 主題 / 回貼
3樓  發表于: 2010-12-03 19:09
版主說的有道理

精品国产一区二区三区AV蜜|一本加勒比HEZYO无码|91在线无码精品秘 入口九|天天干天天日天天射|亚洲无码私人影院