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