Javaの整数の除算とは何ですか?
Java での割り算は、数学や現実の通常の割り算と同じように通常行われます。ただし、残りは破棄されるだけです。たとえば、9 を 2 で割った場合、商は 4 で、余りは 1 になります
例1 [余りが0]
Java の整数の除算は、除数が被除数を完全に除算するすべての場合(整数を x 整数で割ったもの) に完全に機能します。答えは整数であり、整数データ型はオーバーフローすることなくそれを保持できます。したがって、データが失われることはありません。たとえば、次のスニペットを見てください。
public class IntegerDivision {
public static void main(String[] args) {
int dividend = 100;
int divisor = 5;
int quotient = dividend / divisor;
//Dividend completely divides the divisor
System.out.println(dividend + " / " + divisor + " = " + quotient);
dividend = 143;
divisor = 11;
quotient = dividend / divisor;
//Dividend completely divides the divisor
System.out.println(dividend + " / " + divisor + " = " + quotient);
}
}
出力
100 / 5 = 20 143 / 11 = 13
例2 [余りが0ではない]
剰余が 0 でないすべての除算の場合、最終結果は割り切れる最大の整数 (9/2 = 4) に切り捨てられます。これについては次の例で説明します。実際の商を 10 進数で表示する必要がある場合があります。その場合、float または double データ型を使用できます。ただし、商を最も近い int に四捨五入したい場合は、次のようにすることができます。
public class IntegerDivision {
public static void main(String[] args) {
int dividend = 9;
int divisor = 2;
int quotient = dividend / divisor;
// Case I - Dividend does not divide the divisor completely
// The quotient is chopped / truncated
System.out.print("Integer division \t\t" );
System.out.println(dividend + " / " + divisor + " = " + quotient);
// Case II - Mathematical or real life division
// Use float or double data type to get the actual quotient
double actualQuotient = (double)dividend / divisor;
System.out.print("Mathematics division \t\t" );
System.out.println((double)dividend + " / " + divisor + " = " + actualQuotient);
// Case III - Integer Division with rounding off
// the quotient to the closest integer
long roundedQuotient = Math.round((double)dividend / divisor);
System.out.print("Round off int division \t\t" );
System.out.println((double)dividend + " / " + divisor + " = " + roundedQuotient);
}
}
出力
整数の除算 9 / 2 = 4 数学の除算 9.0 / 2 = 4.5 四捨五入 int の除算 9.0 / 2 = 5
説明
ケース I とケース II は説明のとおりです。ケース III の場合は、次の手順で分析できます。-
まず、配当を double に変換する必要があります。
-
通常の Java int 除算を実行します。
-
Math.round()メソッドを使用して商を四捨五入します。
-
四捨五入された商を格納するには、long データ型を使用します。
-
さあ!商として希望の出力が得られます。
GO TO FULL VERSION