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)로 잘립니다. 이는 다음 예제에서 표시됩니다. 십진수로 실제 몫이 필요한 경우가 있을 수 있습니다. 이 경우 float 또는 double 데이터 유형을 사용할 수 있습니다. 그러나 몫을 가장 가까운 정수로 반올림하려면 다음을 수행할 수 있습니다.
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 반올림 정수 나눗셈 9.0 / 2 = 5
설명
사례 I과 사례 II는 자명하다. Case III의 경우 다음 단계로 분류할 수 있습니다.-
먼저 배당금을 두 배로 변환해야 합니다.
-
일반 Java int 나누기를 수행합니다.
-
Math.round() 메서드를 사용하여 몫을 반올림합니다 .
-
반올림된 몫을 저장하려면 long 데이터 유형을 사용하십시오.
-
자! 몫으로 원하는 출력이 있습니다.
GO TO FULL VERSION