JAVA

JAVA 형변환

짱코딩러 2022. 7. 9. 15:53

형변환

 :값의 타입을 다은 타입으로 변환하는 것.

  boolean을 제외한 7개의 기본형은 서로 형변환 가능.

 

1.자동 형변환

 :작은타입 -> 큰타입 (컴파일러에 의해 이루어짐)

  치환문(=)이ㅣ나 수식 내에서 타입이 일치하지 않을 때

 

2.강제 형변환

 :큰타입 -> 작은타입 (값 손실이 일어날 수 있음)

  ()안에 변환할 타입을 지정

 

변환 수식 결과
int -> char (char)65 'A'
char -> int (int) 'A' 65
float -> int (int)1.6f 1
int -> float (float)10 10.0f

 

숫자->문자 +'0'

문자->숫자 -'0'

숫자->문자열 +""

문자열->숫자 +""

문자열->숫자 Integer.parseInt("3")

                      Double.parseDouble("3.4")

문자열->문자 "3".charAt(0)

 

예시

public class TypeConversion {

	public static void main(String[] args) {
		byte b = 127;
		int i = 100;
		System.out.println(b + i);
		System.out.println(10/4);
		System.out.println(10.0/4); //실수와 정수 연산 ->실수
		System.out.println((char)0x1230041);  // 강제타입변환 결과 0x41이 되며, 문자 A의 코드임.(손실되고 0x41만 남는거임)
		System.out.println((byte)(b + i));
		System.out.println(2.9 + 1.8);  //둘다 double일땐 이상무~
		System.out.println(2.9f + 1.8);  //컴터는 소수점 자리를 맞춰서 계산할 줄 모르기 때문에 혼용해서 쓰면X
		System.out.println((int)2.9 + 1.8);  //앞에만 붙여서 2.9만 정수 된겨
		System.out.println((int)(2.9 + 1.8));  //묶어서 둘다 정수가 되게 해주긔
		System.out.println((int)2.9 + (int)1.8); //소수점 다 빼고 계산하고 싶을땐 각각!
		

	}

}
public class TypeCast {

	public static void main(String[] args) {
		byte by = 56;
		int i = by; //by에 있는 56이라는 값이 프로모션돼서 i에 들어왓슈
		double d1 = 3.14f + 1.5f;
		int a = 60;
		int b = 50;
		System.out.println(sum(a,b));
		
		int n = 300;
		byte m = (byte) n;  //int는 byte보다 크니까 byte애 넣으려면 n값을 형변환 시켜줘야댐
		System.out.println(m);  //작은데에 넣을려니까 값손실이 일어나서 44가 출력댐
		double d = 1.9;
		n = (int)d;
		System.out.println(n);
	}
	public static double sum(double a, double b) {
		return a + b;
	}

}

'JAVA' 카테고리의 다른 글

JAVA Scanner, BufferedReader  (0) 2022.07.09
JAVA 아스키코드표  (0) 2022.07.09
JAVA 각종 클래스 -메소드  (0) 2022.07.09
JAVA 출력문 print, println, printf  (0) 2022.07.08
JAVA 연산자  (0) 2022.07.07