Java の整数除算で予期しない結果が生じるのはなぜですか?

Susan Sarandon
リリース: 2024-11-16 06:17:03
オリジナル
518 人が閲覧しました

Why Does Integer Division in Java Produce Unexpected Results?

整数の除算: 予期しない動作を理解する

Java では、整数の除算は 2 つの整数値間の除算を実行し、結果の小数部分を破棄します。 。この動作は、次のコードに示すように、予期しない結果を引き起こす可能性があります。

int quantity = 6800;
int standard = 500;
float res = quantity / standard;
ログイン後にコピー

期待される結果: 13.6

実際の結果: 13.0

この矛盾の 1 つの説明は次のとおりです。整数除算が実行されます。整数除算では結果が切り捨てられるため、小数部分が失われます。正しい結果を得るには、除算が浮動小数点除算として扱われるように強制する必要があります。

これは、分子を明示的に float にキャストすることで実現できます。

float res = (float) quantity / standard;
ログイン後にコピー

あるいは、リテラルを扱う場合、分母に接尾辞 'f' を追加して浮動小数点数を示すことができます:

float res = 6800f / 500;
ログイン後にコピー

float 除算を使用することで、整数の除算を防ぎ、結果の小数部を保持します。このアプローチでは、一貫して期待どおりの結果が得られます: 13.6.

以上がJava の整数除算で予期しない結果が生じるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート