JAVA

형 변환

청춘고양이 2022. 6. 6. 20:30
반응형
	public static void main(String[] args) {
		//정수 연산시 형변환(int보다 작은 자료형들의 덧셈연산) ->int형으로 형변환
		byte x=10;
		char y=20;
		short z=30;
		
		int result1 = x+y+z; //컴파일 오류.. 덧셈연산시 모든 피연산자는 int형으로 형변환
		
		//정수 연산시 형변환(int보다 큰자료형이 포함된 덧셈연산) ->큰자료형으로 형변환
		long w=40;
		
		long result2 = x+y+z+w; //컴파일오류 ..int보다 큰자료형 연산식에 포함되면 큰자료형으로 형변환
		
		//실수 연산시 형변환(정수형,실수형 섞여있을때)->실수자료형으로 형변환
		
		float v=3.14f;
		double o=3.14;
		
		double result3 = x+y+z+w+v+o;
		
		
		

	}

}​
public class C01typeChange {

	public static void main(String[] args) {
		//자료형변환
		//특정 자료형에 의해 저장된 데이터가 다른 자료형 공간에 전달될때
		//자료형을 일치시키는 작업
		//자동형변환(암시적형변환) : 컴파일러에 의해 자동으로 자료형 일치
		//강제형변환(명시적형변환) : 프로그래머에 의해 강제적으로 자료형 일치
		
		
		//자동형변환
		//byte<char<int<long<float<double
		byte byteval = 10;
		
		int intval = byteval; //자동형변환
		
		char charval = '가';
		intval = charval;	// 자동형변환
		
		long longval = intval; //자동형변환
		
		
		float floatval = longval; //자동형변환
		
		double doubleval = floatval; //자동형변환
		

	}

}
public class C02typeChange {

	public static void main(String[] args) {
		//강제형변환
		//넓은공간에 있는 값을 좁은공간에 대입하려고하는 경우 컴파일에러가 발생
		//이러한경우게 강제적으로 형변환을 프로그래에 의한 개입으로 처리
		//강제변환하는경우에는 데이터손실 가능성이 높다
		
		int intval = 44032;
		System.out.printf("%c\n", intval);
		char charval = (char)intval;
		System.out.printf("%c\n", charval);
		
		long longval = 500;
		intval = (int)longval;
		System.out.printf("%d\n", intval);
		
		double doubleval = 3.14;
		intval = (int)doubleval; 
		System.out.println(intval);
		
		int num=129;			//00000000 00000000 0000000 10000001
		byte byteval=(byte)num; //                          10000001
		System.out.println(num);
		System.out.println(byteval);
		
	}

}
public class C04ArithTypeChange {

	public static void main(String[] args) {
		int num = 10;
		int div = 4;
		
		double result1 = num/div;
		double result2 = (double)num/div;
		
		System.out.println("result1 : " + result1);
		System.out.println("result2 : " + result2);
	
	}

}
public class C03ArithTypeChange {

	public static void main(String[] args) {
		//정수 연산시 형변환(int보다 작은 자료형들의 덧셈연산) ->int형으로 형변환
		byte x=10;
		char y=20;
		short z=30;
		
		int result1 = x+y+z; //컴파일 오류.. 덧셈연산시 모든 피연산자는 int형으로 형변환
		
		//정수 연산시 형변환(int보다 큰자료형이 포함된 덧셈연산) ->큰자료형으로 형변환
		long w=40;
		
		long result2 = x+y+z+w; //컴파일오류 ..int보다 큰자료형 연산식에 포함되면 큰자료형으로 형변환
		
		//실수 연산시 형변환(정수형,실수형 섞여있을때)->실수자료형으로 형변환
		
		float v=3.14f;
		double o=3.14;
		
		double result3 = x+y+z+w+v+o;
		
		
		

	}

}
public class C05ArithTypeChange {

	public static void main(String[] args) {
		//----------------------
		//문자열 + 숫자
		//----------------------
//		System.out.println("문자열1" + "문자열2"); 		//단순 연결
//		System.out.println("문자열1"+','+"문자열2");	//단순 연결
//		System.out.println("문자열1"+2);//숫자->문자열자동형변환,연결
//		System.out.println(2+"문자열1");//숫자->문자열자동형변환,연결
//		System.out.println(2+1+"문자열1");
		
		//----------------------
		//문자열->숫자로 강제 형변환
		//----------------------
		
//		System.out.println("10" + "20"); //단순 연결
//
//		//문자열 -> 숫자형으로 변환(정수)
//		int n1=Integer.parseInt("10");	//문자열인10을 정수형으로 형변환
//		int n2=Integer.parseInt("20");	//문자열인20을 정수형으로 형변환
//		
//		System.out.println(n1 + n2); 	//30
//		
//		//문자열 -> 숫자형으로 변환(실수)
//		double n3=Double.parseDouble("3.14");
//		double n4=Double.parseDouble("4.15");
//		System.out.println(n3+n4);
		
		//----------------------
		//숫자->문자열로 강제 형변환
		//----------------------
		
		int n1=10;
		double n2=20.4;
		
		System.out.println(n1+n2);
		
		String str1=String.valueOf(n1);
		String str2=String.valueOf(n2);
		
		System.out.println(str1+str2);
		
		System.out.println((int)Double.parseDouble("3.14"));
		
		String str11 = 2 + 3 + "";
		String str22 = 2 + "" + 3;
		String str33 = "" + 2 + 3;
		System.out.println(str11);
		System.out.println(str22);
		System.out.println(str33);
	}

}
반응형