小编She*_*gus的帖子

计算百分比时出现意外结果 - 即使在分解整数除法规则时也是如此

我试图以百分比表示电池电压.我的电池电量是mV的(全局)uint16.我有一个16位CPU.这是我的代码:

static uint8 convertBattery(void){
    uint16 const fullBattery = 3000; /* 3V = 3000mV */
    uint8 charge;
    charge = ((battery*100)/fullBattery);
    return charge;
}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我已经通过将分子乘以100得到了整数除法.

使用battery = 2756我的充电值计算出04意外的值.我花了很多时间在这个相当微不足道的任务上并没有取得任何进展.有人能说出问题出在哪里吗?

谢谢.

c integer-overflow integer-division percentage

1
推荐指数
1
解决办法
176
查看次数