나를 기록하다
article thumbnail
Published 2022. 11. 6. 17:05
[JAVA] 상수의 데이터 타입 Java
반응형

1. 실수의 표현

1
int a = 2.2;

2.2는 실수다. 실수를 정수 타입의 변수 a에 저장하려고 했기 때문에 오류가 발생한 것이다. 이것은 변수와 똑같이 상수도 데이터 타입이 있다는 것이다. 그럼 위의 예에서 사용한 상수 2.2의 데이터 타입은 무엇일까? float일까? double일까?

아래 코드를 보자.

1
float a = 2.2;

"Type mismatch: cannot convert from double to float"

위와 같은 에러가 발생한다. 즉 2.2는 float가 아니라는 뜻이다. 예제를 조금 바꿔보자.

1
double a = 2.2;

오류가 사라졌다. 자바에서 실수형 상수는 double의 데이터 타입이다. 그럼 float 형 변수에는 어떻게 값을 대입할 수 있나? 2.2가 float 형이라는 것을 분명하게 명시해주면 된다.

1
float a = 2.2F;

F는 이 기호 앞의 숫자가 float 데이터 타입이라는 것을 명시적으로 표현하는 방법이다.

 

2. 정수의 표현

그럼 데이터 타입이 정수인 상수는 어떤 데이터 타입이 될까? int다. 아래 예제는 오류가 발생할 것이다.

1
int a = 2147483648;

int의 최댓값인 2147483647 보다 1 많기 때문이다. 코드를 고쳐보자.

1
long a = 2147483648;

"The literal 2147483648 of type int is out of range"

변수는 long 타입이지만 이 변수에 대입되는 상수가 여전히 int 타입이기 때문에 int로 표현할 수 있는 최대 숫자를 여전히 초과하고 있다. 아래와 같이 코드를 변경해보자.

1
long a = 2147483648L;

이제 오류가 해결되었다. 상수도 long 타입이 되었고, 그 상수를 담을 변수도 long 타입이 되었다. 그럼 int 보다 작은 데이터 타입인 short나 byte는 어떻게 해야 표현할 수 있을까?

1
2
byte a = 100;
short b = 200;

이번에는 오류가 발생하지 않는다. 자바는 byte와 short 타입에 대해서는 int 형을 허용하기 때문에 오류가 발생하지 않는다.

반응형

'Java' 카테고리의 다른 글

[C] 반복문을 통한 구구단 만들기  (0) 2022.11.27
[C] 경찰 조서 작성 프로젝트  (0) 2022.11.27
[JAVA] 데이터 타입  (0) 2022.11.06
[JAVA] 주석과 세미콜론  (0) 2022.11.06
[JAVA]변수  (0) 2022.11.06
profile

나를 기록하다

@prao

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...