亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標(biāo)題: 請(qǐng)教這段代碼的算法錯(cuò)在哪? [打印本頁]

作者: 太陽雨ZW    時(shí)間: 2025-1-8 18:14
標(biāo)題: 請(qǐng)教這段代碼的算法錯(cuò)在哪?

        fdsj(hour,min);//放電時(shí)間顯示
        fd_AH=((hour*60+min)*FD_A)/60/10;//放電容量計(jì)算
        FDdisp_AH(fd_AH);//放電容量顯示

        hour-----小時(shí)
        min------分鐘
        FD_A----放電電流
        fd_AH---放電容量
      
        這是一臺(tái)DIY大功率智能脈沖快速充電機(jī)代碼中放電容量計(jì)算的代碼,測(cè)試發(fā)現(xiàn)fd_AH(放電容量)隨著時(shí)間一增加到108AH就歸零從頭開始計(jì)算,這樣
        108AH以上的電池就不能準(zhǔn)確顯示了,百思不得其解,請(qǐng)指點(diǎn)。
作者: glinfei    時(shí)間: 2025-1-9 09:02
fd_AH的變量聲明是啥? 編譯程序優(yōu)化打開沒?要不先把fd_AH=((hour*60+min)*FD_A)/60/10;//放電容量計(jì)算 改成fd_AH=(hour/60+min/600)*FD_A)試試?
作者: ydatou    時(shí)間: 2025-1-9 09:12
估計(jì)樓主這4個(gè)變量類型為unsigned char。
(hour*60+min) 最大 255
FD_A 最大255
所以fd_AH經(jīng)過計(jì)算(255*255)/60/10=108;
要把這幾個(gè)變量類型改為unsigned int
作者: 太陽雨ZW    時(shí)間: 2025-1-9 12:30
glinfei 發(fā)表于 2025-1-9 09:02
fd_AH的變量聲明是啥? 編譯程序優(yōu)化打開沒?要不先把fd_AH=((hour*60+min)*FD_A)/60/10;//放電容量計(jì)算 改 ...

fd_AH的變量聲明是uint,放電容量計(jì)算 改成fd_AH=((hour/60+min/600)*FD_A)后計(jì)算結(jié)果始終是零不變化。
作者: 太陽雨ZW    時(shí)間: 2025-1-9 12:36
ydatou 發(fā)表于 2025-1-9 09:12
估計(jì)樓主這4個(gè)變量類型為unsigned char。
(hour*60+min) 最大 255
FD_A 最大255

hour和min的變量類型是uchar,  FD_A和 fd_AH是uint,現(xiàn)在把hour,min也改為uint后還是一到108就歸零了。
作者: lkc8210    時(shí)間: 2025-1-10 14:58
FDdisp_AH的傳參類型是啥?
作者: 太陽雨ZW    時(shí)間: 2025-1-10 17:12
lkc8210 發(fā)表于 2025-1-10 14:58
FDdisp_AH的傳參類型是啥?

是uint
作者: ydatou    時(shí)間: 2025-1-11 08:50
太陽雨ZW 發(fā)表于 2025-1-9 12:36
hour和min的變量類型是uchar,  FD_A和 fd_AH是uint,現(xiàn)在把hour,min也改為uint后還是一到108就歸零了。

51確實(shí)容易出現(xiàn)計(jì)算錯(cuò)誤。
試試這樣
unsigned long i=hour*60+min;
i*=FD_A;
fd_AH/=600;
FDdisp_AH(fd_AH);/
作者: 風(fēng)158    時(shí)間: 2025-1-11 10:57
變量計(jì)算過程中也不能溢出。
我也遇到過這種情況,摸索好久才解決。
可把變量定義為ulong,或先除后乘,先減后加,防止計(jì)算過程中數(shù)值溢出無法存放。
我以前就是為了提高精度采用先乘后除,結(jié)果到一定數(shù)值后突然變0,經(jīng)過追蹤發(fā)現(xiàn)這個(gè)數(shù)值是65535,這才醒悟。
作者: 太陽雨ZW    時(shí)間: 2025-1-11 11:07
ydatou 發(fā)表于 2025-1-11 08:50
51確實(shí)容易出現(xiàn)計(jì)算錯(cuò)誤。
試試這樣
unsigned long i=hour*60+min;

多謝指點(diǎn),按照你的算法正常了,非常感謝!
作者: 太陽雨ZW    時(shí)間: 2025-1-11 12:08
風(fēng)158 發(fā)表于 2025-1-11 10:57
變量計(jì)算過程中也不能溢出。
我也遇到過這種情況,摸索好久才解決。
可把變量定義為ulong,或先除后乘, ...

謝謝回復(fù),按照8樓的算法就正常了。





歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1