szrunluo
級別: *
|
使用除法運(yùn)算時(shí),DIV, 10000 / 6=1666, 余數(shù)是0.666667. 但在PC運(yùn)行中計(jì)算出來的余數(shù)是4,我百思不解PC是怎樣轉(zhuǎn)換過來的結(jié)果, 請求高手指點(diǎn). |
---|---|
|
cvlsam
富士低壓,POD(觸摸屏),PLC專賣
級別: VIP會員
|
這是因爲(wèi)您的PLC或者您的程式有問題! 如果您的PLC不支持浮點(diǎn)運(yùn)算,那麼將會以整除來計(jì)算,其結(jié)果自然是商+餘數(shù),而餘數(shù)就是4了。 如果您的PLC支持浮點(diǎn)運(yùn)算,而您卻未使用帶有E的浮點(diǎn)運(yùn)算指令,那麼也是如上的結(jié)果。 以上! |
---|---|
本帖最近評分記錄: |
szrunluo
級別: *
|
一樓,我是沒有用浮點(diǎn)運(yùn)算,小數(shù)點(diǎn)后被PC換成整數(shù),我奇怪的就是這點(diǎn),我自己換算了一下,卻不知用的是哪個(gè)公式,結(jié)果才會等于4。請你把這個(gè)說明一下好嗎,謝謝。 |
---|---|
|
szrunluo
級別: *
|
我心急想知道這個(gè)結(jié)果,不知怎樣把貼子頂上去,只用這個(gè)方法了,請不要見笑,望有知道這是怎么回事的高手們解答一下,謝謝,謝謝。 |
---|---|
|
cvlsam
富士低壓,POD(觸摸屏),PLC專賣
級別: VIP會員
|
您無需重復(fù)頂貼以引起關(guān)注,您完全可以使用站內(nèi)短訊聯(lián)系…… 請您翻開您的《FX1S,FX1N,F(xiàn)X2N編程手冊》至185頁,上面所述的DIV指令的用法。 三菱對于除法的原則是:被除數(shù)/除數(shù)=商……余數(shù),也就是說,例如:10除以3,三菱的結(jié)果將會在地址1中保留商3,然后在地址1+1上保留余數(shù)1. 而您的概念是存在一定模糊的,其最終原因在于您混淆了余數(shù)與尾數(shù)的概念,以10除3為例,余數(shù)為1,尾數(shù)為0.3333333…… 以上~~ |
---|---|
本帖最近評分記錄: |
zxdha
級別: 略有小成
|
簡單點(diǎn)說,div或ddiv是整數(shù)運(yùn)算指令,在運(yùn)算時(shí)它不會去計(jì)算小數(shù)點(diǎn)后面的數(shù)據(jù),也就是說它只運(yùn)算到個(gè)位數(shù)為止,所以余數(shù)也一定是整數(shù)。如1000除以6等于166,余數(shù)肯定為4。 而使用浮點(diǎn)運(yùn)算從理論上來說是不存在余數(shù)的。。(shí)際應(yīng)用中主要看你使用32位計(jì)算、還是使用64位計(jì)算、還是用128位計(jì)算,位數(shù)越高精確度也越高。如1000除以6等于166.66666666666.......7。請注意小數(shù)點(diǎn)后面的0.66666666666.......7它其實(shí)是商,而不是余數(shù)。。 |
---|---|
本帖最近評分記錄: |
ymmfa
不想大江大河,不想浪起潮落,只愿一灣小湖,靜待歲月安好。
級別: 管理員
|
如果要計(jì)算,并且除不盡,而PLC又不支持浮點(diǎn),我一般喜歡把分子放大 比如 10萬/6 因?yàn)檫\(yùn)算可能有多個(gè)步驟,如果每個(gè)步驟都有余數(shù),這些誤差累計(jì)到最后會很大 我一般把分子放大10倍左右,算到最后再除10,這樣好一點(diǎn) |
|
---|---|---|
|