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 |