Java の整数除算の落とし穴: 誤った結果の理解と解決
Java で整数除算を実行すると、小数部分が計算されるという一般的なエラーが発生します。結果の一部が破棄され、予期しない結果が生じます。この問題は、整数除算がデフォルト形式で両方のオペランドを整数として扱うという事実に起因します。
たとえば、次の Java コードを考えてみましょう。
float res = quantity / standard;
数量と標準の場合が整数の場合、除算演算では整数の除算が実行され、値は切り捨てられます。これは、整数商に小数部分がないために発生します。
この問題を解決するには、分子または分母を浮動小数点型に明示的に変換する必要があります。これにより、除算演算では浮動小数点除算が強制的に実行され、結果の小数部分が保持されます。
1 つの方法は、以下に示すように、分子を float にキャストすることです。
float res = (float) quantity / standard;
あるいは、リテラルを使用する場合は、次のように分母に「f」接尾辞を追加することで、適切な浮動小数点変換を保証できます。以下:
float f = 6800f / 500;
これらのメソッドにより、除算演算が浮動小数点演算として実行され、小数部分が保持され、整数の除算で発生する切り捨てエラーが排除されます。
以上がJava で整数の除算を行うと結果が切り捨てられるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。