ホームページ >Java >&#&チュートリアル >Java の整数除算でパーセンテージを計算すると予期しない結果が生じるのはなぜですか?

Java の整数除算でパーセンテージを計算すると予期しない結果が生じるのはなぜですか?

DDD
DDDオリジナル
2025-01-02 18:35:37181ブラウズ

Why Does Integer Division in Java Produce Unexpected Results When Calculating Percentages?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。