REAL數(shù)據(jù)最大值是多少?
劉玉蓉
發(fā)布于2014-12-08 17:21
14
0
標(biāo)簽:
RT,建了個(gè)REAL數(shù)據(jù)塊,計(jì)算累加值,累計(jì)到8192.0后就不再累記了,瞬時(shí)值很大都不行,換其他地址也一樣,怎么回事情?
佳答案
浮點(diǎn)數(shù)相加的時(shí)候,數(shù)量級(jí)差別太大的話,就會(huì)出現(xiàn)你說的情況,處理方法參考鏈接:
實(shí)數(shù)相加的話,要注意的一個(gè)問題當(dāng)兩個(gè)數(shù)的數(shù)量級(jí)別相差太大的時(shí)候,就會(huì)出現(xiàn)不累加的情況。
在S7中實(shí)數(shù)的定義和計(jì)算可保持精確到小數(shù)點(diǎn)后6位
加和減時(shí),是按照指數(shù)歸齊,也就是基數(shù)和指數(shù)對(duì)加和減相同,只加入尾數(shù)。
0.0625 = 6.25e-2
1627262.2 = 1.627262e+6(后1個(gè)2是舍去的)
相加的時(shí)候,按照指數(shù)歸齊那么
6.25e-2 = 0.0000000625e+6 (指數(shù)為6要對(duì)齊)
這時(shí)小數(shù)點(diǎn)后只保留6位,那么就是
0.000000e+6 也就是0
所以相加后的數(shù)據(jù)就出現(xiàn)你說的不能累加的情況。
解決的方法可以將流量累加的一定數(shù)值后,比如累計(jì)1個(gè)小時(shí)后,將累加值及時(shí)保存到DB塊中,然后清空累加值,再重新累計(jì)。