ホームページ  >  記事  >  Java  >  Java の整数の除算で小数部が切り捨てられるのはなぜですか?

Java の整数の除算で小数部が切り捨てられるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-20 02:56:01368ブラウズ

Why Does Integer Division in Java Truncate Fractions?

整数除算の不一致の解決

Java では、単純な除算演算を試みるときによくある間違いが発生します。整数ベースの計算が予期せず失敗するこのようなシナリオは、整数の除算の性質に起因している可能性があります。

整数を除算すると、結果は小数部分を切り捨てた整数になります。この制限は、次の Java コードで確認できます。

float res = quantity / standard;

変数 res が float として宣言されているにもかかわらず、2 つの整数を除算すると整数の結果が得られます。この不一致により、予期しない精度エラーが発生する可能性があります。

この問題を修正するには、除算の前に分子を浮動小数点として明示的にキャストすることを検討してください。

float res = (float) quantity / standard;

分子を強制的に浮動小数点として扱うことにより、 float の場合、分母も float に昇格されます。これにより、float ベースの除算が確実に実行され、結果の小数部分が res に保存されます。

あるいは、リテラルを扱う場合は、分母に接尾辞 "f" を追加することもできます。

float f = 6800f / 500;

この変更は明示的なキャストと同じ目的を達成し、分母を float にキャストして float ベースの除算演算を確実に実行します。

以上がJava の整数の除算で小数部が切り捨てられるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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