Java에서 Long을 Int로 변환하는 방법

Hassan Saeed 2023년10월12일
  1. 타입 캐스팅을 사용하여 Java에서longint로 변환
  2. Math.toIntExac()를 사용하여 Java에서longint로 변환
Java에서 Long을 Int로 변환하는 방법

이 튜토리얼에서는 Java에서longint로 변환하는 방법에 대해 설명합니다.

타입 캐스팅을 사용하여 Java에서longint로 변환

Java에서 longint로 변환하는 가장 간단한 방법은 (int)longVar를 사용하여 longint로 형변환하는 것입니다. 아래 예는이를 설명합니다.

public class MyClass {
  public static void main(String args[]) {
    long myLong = 10000l;
    int myInt = (int) myLong;
    System.out.println("Value of long: " + myLong);
    System.out.println("Value after conversion to int: " + myInt);
  }
}

출력:

Value of long: 10000
Value after conversion to int: 10000

Math.toIntExac()를 사용하여 Java에서longint로 변환

Java 8 이상에서는 내장 된Math 클래스 메소드 인Math.toIntExac()를 사용하여long을 Java에서int로 변환 할 수 있습니다. 아래 예는이를 설명합니다.

public class MyClass {
  public static void main(String args[]) {
    long myLong = 10000l;
    int myInt = Math.toIntExact(myLong);
    System.out.println("Value of long: " + myLong);
    System.out.println("Value after conversion to int: " + myInt);
  }
}

출력:

Value of long: 10000
Value after conversion to int: 10000

이들은 Java에서longint로 변환하는 데 일반적으로 사용되는 두 가지 방법입니다. 그러나 우리는 우리가 가지고있는long 값이 32 비트와 64 비트의 다른 메모리 제한을 가지고 있기 때문에 int에 완전히 저장 될 수 있도록해야합니다.

32 비트보다 큰 long값을 int로 변환하려고 할 때 두 방법 모두 다르게 작동합니다.

아래 예제는이 경우 형변환이 어떻게 작동하는지 보여줍니다.

public class MyClass {
  public static void main(String args[]) {
    long myLong = 10000000000l;
    int myInt = (int) myLong;
    System.out.println("Value of long: " + myLong);
    System.out.println("Value after conversion to int: " + myInt);
  }
}

출력:

Value of long: 10000000000
Value after conversion to int: 1410065408

int 변수에이long 값을 넣을 수 없기 때문에 변환 된 결과 값이 잘못되었습니다.

아래 예제는이 경우Math.toIntExac()가 어떻게 동작하는지 보여줍니다.

public class MyClass {
  public static void main(String args[]) {
    long myLong = 10000000000l;
    int myInt = Math.toIntExact(myLong);
    System.out.println("Value of long: " + myLong);
    System.out.println("Value after conversion to int: " + myInt);
  }
}

출력:

> Exception in thread "main" java.lang.ArithmeticException: integer overflow
	at java.base/java.lang.Math.toIntExact(Math.java:1071)
	at MyClass.main(MyClass.java:4)

이 메소드는longint에 잘못 맞추려고하는 대신integer overflow 오류를 제공합니다.

관련 문장 - Java Int