lzhpsky
工控小菜鳥
級別: 論壇先鋒
|
我現在快暈了,大家看,為什么VD708和VD28的數據都是1.64,程序就是不通呢?為什么在狀態表里監控無符號數據時不一樣?換成監控浮點數的話,就都是1.64了,為什么?上面的程序VD708我已經四舍五入了,取小數點后2位了,數據是1.64,VD28是設定的數據,也是保留小數點后2位,但是為什么都相等了,就是不通呢?哪位高手指點一下,謝謝 |
---|---|
|
sjm213
有小知識,無大學問。
級別: 論壇版主
|
VD28是如何轉換過來的? 浮點數精度過高,直接用==R很容易出現這個情況。 就像監控時這樣,用浮點數監控都是1.64,但實際上其數值并非完全一樣,所以程序比較出來兩者不相等。 建議將浮點數轉換為整數,用整數比較指令。 或者設定一個小誤差范圍,如用<=R VD708 1.641 替代==R |
---|---|
|