2011-11-07 11 views
1

何かのためにパーセンテージを出すために分ける必要がある2つの整数変数があります。私は(variablea/variableb)* 100を持っています。問題は、(variablea/variableb)が0と1の間にあるため、intであるため0に丸められます。答えが必ずしも0ではないように、どうすれば丸めることができますか?カーネルモジュールの除算

答えて

3

お試し(variablea * 100)/variableb

これは結果を切り捨てます。あなたがに最も近いに最も近い場合は、(variablea * 100 + variableb/2)/variablebとすることができます。あなたはより多くの小数点以下の桁数を取得したい場合

最後に、代わりに100のあなたが100010000などの定数を使用することができます(単に印刷する場合、すなわち、正しく番号をフォーマット10100ことによってそれを拡大縮小することを忘れないでください)。

+1

あるいは「variablea * 10000/variableb」さえ、その結果を百分率の100倍とみなします。たとえば、 'printf("結果は%d。%02d% "、結果/ 100、結果%100)です。 – wallyk