HOWTO · Java
Java의 정수 나눗셈
이 기사에서는 Java에서 정수 나누기가 발생하는 방식을 소개합니다.
이 기사에서는 두 정수를 나눌 때 내부적으로 어떤 일이 발생하는지에 대한 자세한 설명을 소개합니다.
아래 Java 코드에는 4 개의 Java 문이 있습니다. 각 줄은 서로 나누는 숫자에 따라 다른 출력을 인쇄합니다.
package integer_division;
public class IntegerDivision {
public static void main(String[] args) {
System.out.println(10 / 9);
System.out.println(-10 / 9);
System.out.println(10 / -9);
System.out.println(10 / 19);
System.out.println((float) 10 / 9);
System.out.println((double) 10 / 9);
}
}
- 경우 1의 경우 큰 정수를 작은 정수로 나눕니다. 결과 출력은 정수
1입니다. 수학적으로 10을 9로 나누면 반복되는 숫자는1.1111...이됩니다. 그러나 Java 언어에서는 정수가 다른 정수를 나눌 때 나머지를 버리고 몫을 유지합니다. 따라서 결과 출력은 정수입니다. - 경우 2에서 음의 정수를 양의 정수로 나누면 정수는
-1이됩니다. 위에서 언급했듯이 정수는 나머지를 버리고 몫을 유지합니다. 따라서 결과 값은 음의 정수입니다. - 경우 3의 경우 분자가 양의 정수이고 분모가 음의 정수인 경우가 반대입니다. 결과 출력은
-1입니다. 다시 말하지만, 분자 나 분모의 음수 부호는 그다지 중요하지 않습니다. 나머지를 유지하지 않고 단순히 두 숫자를 나눕니다. 따라서 출력은 다시 정수의 부정입니다. - 4의 경우 분모가 분자보다 커서
1보다 작은 숫자가됩니다. 위에서 언급했듯이 숫자는 0 이후에 잘리고 출력으로0값을 인쇄합니다. - 경우 5의 경우 출력을
float값으로 수동 형변환합니다.
먼저 형변환을 이해합시다.
Typecasting은 한 데이터 유형을 다른 데이터 유형으로 변환하는 프로세스이며 수동 또는 자동으로 수행 할 수 있습니다.
Widening Typecasting: 종종암시 적 변환이라고합니다. 이 유형의 캐스팅에서 더 작은 데이터 유형은 더 높은 데이터 유형으로 변환됩니다. 컴파일러는이 캐스팅을 자동으로 수행합니다.Narrowing Typecasting: 종종명시 적 변환이라고합니다. 이 유형의 캐스트에서는 더 큰 데이터 유형이 더 작은 데이터 유형으로 캐스트되어 데이터가 손실됩니다.
따라서 경우 3의 경우 컴파일러에 의해 암시 적으로 잘린 데이터는 수동으로float숫자로 캐스트되어 완전한 유리수가됩니다. 이 번호는 최대 8 자리의 데이터를 표시합니다.
마찬가지로 경우 6에서 정수 나눗셈을double값으로 수동으로 캐스팅합니다. 따라서 최대 16 자리 숫자를 표시하는 10 진수가됩니다.
위 코드의 출력은 아래 섹션을 참조하십시오.
1
-1
-1
0
1.1111112
1.1111111111111112