728x90

자동 타입 변환

실수 타입은 정수타입보다 범위가 더 크다

cf) byte < short, char < int < long < float < double

      1          2        2        4       8          4         8

 

예시 )

doubleValue = intValue
doubleValue = (double) intValue //형 맞추기
doubleValue = (double) 10 //변수 값 읽기
doubleValue = 10.0 //형변환

 

 

강제 타입 변환

a. 큰 허용 범위 타입은 작은 허용 범위 타입으로 자동 타입 변환 불가

b. 큰 허용 범위 타입을 작은 허용 범위타입으로 쪼개어서 저장하는것을 Casting이라고 한다

c. 정수 타입 변수가 산술 연산식에서 피연산자로 사용되면 int 타입보다 작은 byte, short 타입의 변수는 int 타입으로

    자동 타입 변환되어 연산을 수행한다

package test;
import java.util.Scanner;

public class studying {

	public static void main(String[] args) {

		double doubleValue = 1.5;
		int intValue = 0;

		intValue = (int) doubleValue;  //강제 타입 변환
		System.out.println(intValue);
	}
}

 

계산과 형 변환

 int div1 = 3 / 2;
 System.out.println("div1 = " + div1); //1
 
 double div2 = 3 / 2;
 System.out.println("div2 = " + div2); //1.0
 
 double div3 = 3.0 / 2;
 System.out.println("div3 = " + div3); //1.5
 
 double div4 = (double) 3 / 2;
 System.out.println("div4 = " + div4); //1.5
 
 int a = 3;
 int b = 2;
 double result = (double) a / b;
 System.out.println("result = " + result); //1.5

 

1. 같은 타입끼리의 계산은 같은 타입의 결과를 낸다.
int + int 는 int 를, double + double 은 double 의 결과가 나온다.

2. 서로 다른 타입의 계산은 큰 범위로 자동 형변환이 일어난다.
int + long 은 long + long 으로 자동 형변환이 일어난다.
int + double 은 double + double 로 자동 형변환이 일어난다

 

728x90

'Language > JAVA' 카테고리의 다른 글

[JAVA] 배열, for-each문  (1) 2024.02.25
[JAVA] Scanner  (1) 2024.02.25
[JAVA] 반복문(for)  (1) 2024.02.25
[JAVA] 삼항 연산자, 반복문(while, do-while, Switch, break, continue)  (1) 2024.02.24
[JAVA] 조건문  (0) 2024.02.24

+ Recent posts