内核模块中的划分

时间:2011-11-07 15:54:19

标签: linux-kernel kernel

我有两个整数变量,我需要将它们分开,以便为某些事情处理百分比。我有(variablea / variableb)* 100.问题是(variablea / variableb)将介于0和1之间,因此它会被舍入为0,因为它是一个int。我怎样才能解决这个问题,所以答案并不总是0?

1 个答案:

答案 0 :(得分:3)

尝试(variablea * 100) / variableb

这会截断结果。如果你相当于最接近的整数百分比,你可以做(variablea * 100 + variableb/2) / variableb

最后,如果您想要获得更多小数位,则可以使用1001000之类的常量代替10000,而只需记住在打印时正确格式化数字,即按10100)进行缩放。