PCCP

[PCCP] Java 숫자형 타입과 실수의 정수 여부 판별 방법 정리

Life Log 2025. 4. 8. 00:41
728x90
반응형

PCCP와 같은 프로그래밍 시험에서는 Java의 기본 자료형 중 숫자와 관련된 타입들에 대한 이해가 중요합니다. 특히, 실수인지 정수인지 판별하는 방법도 자주 출제되는 포인트 중 하나인데요. 이 글에서는 Java의 주요 숫자형 타입들과 함께, 실수 값이 정수인지 판별하는 방법까지 깔끔하게 정리해보겠습니다.


🔢 Java의 숫자형 타입 정리

Java에서 숫자를 표현할 수 있는 기본 타입(Primitive Types)은 크게 정수형실수형으로 나눌 수 있습니다.

✔️ 정수형 타입 (소수점 없음)

타입 크기 범위 기본값 비고
byte 8-bit -128 ~ 127 0 메모리 절약용
short 16-bit -32,768 ~ 32,767 0 드물게 사용
int 32-bit 약 ±21억 0 ✅ 기본 정수형
long 64-bit 매우 큼 0L 숫자 뒤에 L 필요

📌 대부분의 상황에서는 int 또는 long을 사용합니다.


✔️ 실수형 타입 (소수점 있음)

타입 크기 정밀도 기본값 비고
float 32-bit 약 7자리 0.0f 숫자 뒤에 f 필요
double 64-bit 약 15자리 0.0 ✅ 기본 실수형

double이 실수형의 기본 타입입니다. float은 상대적으로 적은 정밀도를 가집니다.


❓ 실수값이 정수인지 확인하는 방법

시험에서 자주 나오는 실전 문제 유형 중 하나는 "소수인지 정수인지 판별하라"는 것입니다. 실수를 입력으로 받아 정수인지 여부를 판단하는 로직은 여러 가지 방법으로 구현할 수 있습니다.


✅ 방법 1: value % 1 == 0 사용하기

가장 직관적이고 간단한 방법입니다.

double value = 10.0;
boolean isInteger = value % 1 == 0;
  • % 1의 결과가 0이라면, 소수점 이하가 없다는 뜻입니다.

✅ 방법 2: Math.floor() 혹은 Math.ceil()과 비교하기

boolean isInteger = value == Math.floor(value);
// 또는
boolean isInteger = value == Math.ceil(value);
  • 반올림 전후 값이 같다면 정수입니다.

✅ 방법 3: 정수형으로 캐스팅 후 비교

boolean isInteger = value == (long) value;
  • 실수값을 long 또는 int로 변환한 뒤, 원래 값과 비교합니다.
  • 단, 정밀도가 큰 값이나 음수일 경우 주의가 필요합니다.

🔍 실전 예제

public class CheckIntegerExample {
    public static void main(String[] args) {
        double[] values = {10.0, 10.5, -3.0, 0.123456};

        for (double val : values) {
            boolean isInt = val % 1 == 0;
            System.out.printf("%.6f is %sa whole number.%n", val, isInt ? "" : "not ");
        }
    }
}

출력 결과:

10.000000 is a whole number.
10.500000 is not a whole number.
-3.000000 is a whole number.
0.123456 is not a whole number.

✨ 마무리 팁

  • 숫자 리터럴 기본 타입:
    • 정수: int
    • 실수: double
  • 정수 범위를 벗어날 가능성이 있을 때는 long을 적극 사용!
  • 실수 값이 정수인지 판별할 땐 % 1 == 0을 기억하세요.

PCCP 시험뿐 아니라, 코딩 테스트 전반에서 자주 등장하는 숫자형 타입 문제! 오늘 정리한 내용을 머리에 잘 넣어두시면 실전에서 큰 도움이 될 거예요 💡

궁금한 점이나 더 알고 싶은 주제가 있다면 언제든지 댓글로 알려주세요! 😄

728x90
반응형

'PCCP' 카테고리의 다른 글

[PCCP] JAVA StringBuilder  (0) 2025.04.19
[PCCP] JAVA Character  (0) 2025.04.19
[PCCP] JAVA String  (0) 2025.04.19
[PCCP] JAVA 배열  (0) 2025.04.06
[PCCP] 시간복잡도  (0) 2025.04.06