Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발자 도전기

[JAVA] 데이터 타입과 연산자의 형변환 본문

개발공부/JAVA

[JAVA] 데이터 타입과 연산자의 형변환

jnnjnn 2024. 1. 26. 20:08

 

자바에서는 데이터 타입을 엄밀하게 구분한다고 지난번에 배웠는데,

정수나 실수 타입에서도 데이터 타입이라는 것이 여러개라는 것을 알게 되었다.

 

정수형에는 담을 수 있는 데이터의 크기 순으로 byte < short < int < long 이 있고,

가장 대중적으로 사용하는 것은 int이다.

또, long 타입의 데이터를 사용할 경우 long a = 41825L과 같이 끝자리에 L을 붙여줘야 한다.

 

실수에는 float와 double이 있는데 float도 long과 마찬가지로 끝자리에 F형을 붙여줘야 float형에 담을 수 있다.

 

또한 상수를 본인의 데이터 타입이 아닌 데이터 타입에 담는 것도 가능한데, 이를 형변환이라고 한다.

형변환은 더 큰 데이터 타입이 보다 작은 데이터 타입을 담아서 따로 명시가 필요 없는 자동 형변환과

반대인 경우에 데이터가 유실될 가능성이 있는 명시적 형 변환이 있다.

 

이렇게 데이터 타입의 분류가 까다로운 자바에서 서로 다른 데이터 타입끼리 연산자를 사용해서 계산하면 어떻게 되는걸까?

 

public class ArithmeticDemo {
	public static void main(String[] args){
		int result = 1+2;
		System.out.println(result);
		
		result = result + 8;
		result = result%7;
		System.out.println(result);
		
		int a = 10;
		int b = 3;
		
		float c = 10.0F;
		float d = 3.0F;
		
		System.out.println(a/b);
		System.out.println(c/d);
		System.out.println(a/d);
	}
}

 

a/b의 경우 정수의 데이터타입을 선언했기 때문에 실수인 0.3333333...이 유실된다.

c/d의 경우 데이터타입과 결과값 모두 실수이기 때문에 값이 유실되지 않는다.

a/d의 경우 a가 자동으로 float 형으로 형변환이 된다.

 

'개발공부 > JAVA' 카테고리의 다른 글

[JAVA] 반복문 : break, continue  (1) 2024.01.27
[JAVA] 조건문 : Switch  (1) 2024.01.26
[JAVA] 직접 컴파일하고 실행하기  (0) 2024.01.25
[JAVA] 인자(argument)와 매개변수(parameter)  (0) 2024.01.25
[JAVA] 입력과 출력  (0) 2024.01.25