ホームページ >Java >&#&チュートリアル >Java の整数除算でパーセンテージを計算すると予期しない結果が生じるのはなぜですか?
Java では、整数値 (この場合はlong) の除算は整数算術規則に従い、結果は整数になります。整数を除算する場合、結果は負の無限大に向かって丸められます。これにより、特にパーセンテージを計算しようとする場合、予期しない結果が生じる可能性があります。
これに対処するには、除算を実行する前に、入力整数の少なくとも 1 つを double (浮動小数点数) に変換する必要があります。これにより、除算が浮動小数点演算に強制され、10 進数の結果が生成されます。
double completed = 25000; double total = 50000; double percentage = completed / total; // Prints 0.5 System.out.println(percentage); // Prints 0.5
入力の 1 つを double にキャストすると、除算の結果も double になり、期待されるパーセンテージ値が得られます。
>最初に試みた結果 (完了/合計) を変換するだけでは十分ではないことに注意することが重要です。整数の除算はその時点ですでに行われています。入力を変換すると、最初から適切な浮動小数点演算が使用されるようになります。
以上がJava の整数除算でパーセンテージを計算すると予期しない結果が生じるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。