HOWTO · Java

Java의 이중 나눗셈

정수-이중 나눗셈 혼동 지우기

여기 이 가이드에서는 Java의 이중 분할에서 발생하는 혼란을 해결합니다. 이를 완전히 이해하려면 Java의 데이터 유형에 익숙해야 합니다. 다음 규칙을 살펴보십시오.

  1. 두 정수 사이의 모든 산술 연산은 정수를 출력으로 제공합니다.
  2. integer와 double 사이의 모든 산술 연산은 double 값을 제공합니다.

데이터 유형 double이 정수보다 우선순위가 더 높기 때문에 double 및 integer를 포함하는 모든 연산은 double 값을 제공한다고 말할 수 있습니다.

Java의 정수-이중 나눗셈

다음 코드를 살펴보십시오.

import java.util.*;
import javax.naming.spi.DirStateFactory.Result;
public class Main {
  public static void main(String args[]) {
    int x = 8;
    int y = 30;
    double z = y / x;
    System.out.println(z);
  }
}

이 프로그램이 출력으로 무엇을 줄 것이라고 생각합니까? 3.0 또는 3.75. 우리는 단순히 두 개의 정수를 나누어 출력으로 정수를 제공하기 때문에 3.0이 됩니다. 이 경우에는 3입니다. 우리는 이 출력을 double z에 저장했고 데이터 유형이 double이므로 3.0이 되었습니다.

따라서 다음 코드가 수행할 수 있는 정확한 출력을 얻으려면 캐스팅을 적용해야 합니다.

import java.util.*;
import javax.naming.spi.DirStateFactory.Result;
public class Main {
  public static void main(String args[]) {
    int x = 8;
    int y = 30;
    double z = (double) y / x;
    System.out.println(z);
  }
}

출력:

3.75

여기서 (double)은 Java에서 유형 캐스팅에 사용됩니다. 그래서 yx는 모두 이중이 되었습니다. 나눗셈 후에 출력은 다시 z를 이중으로 저장하며 이는 또한 이중입니다. 따라서 출력은 3.75가 됩니다.