- 작은 타입이 큰 타입으로 변하는 경우 자동 변환된다.
- 서로 다른 타입으로 연산하는 경우 동일한 타입으로 자동 변환된다.
public class Promotion {
public static void main(String[] args) {
double a = 1.5;
int b = 5;
System.out.println(a + b);
}
}
1.5는 8바이트 double 타입이고, 5는 4바이트 int 타입이기 때문에 이대로는 연산이 불가능하다.
java는 5를 8바이트 double 타입 5.0으로 자동 변환한 뒤 1.5 + 5.0으로 연산을 진행한다.
강제 타입 변환 (Casting)
- 큰 타입이 작은 타입으로 변하는 경우 개발자가 강제로 진행해야 한다.
강제로 타입을 변환시 변수 앞에 ( )를 붙이고 변환할 타입을 지정해준다.
- 실수를 정수로 강제 타입 변환하면 소수점은 모두 손실된다.
public class Casting {
public static void main(String[] args) {
double a = 1.7;
int b = (int)a;
System.out.println(b);
}
}
변수 b에 저장되는 값은 소수점 이하 0.7가 손실된 1이 저장된다.
문자열을 숫자데이터로 변환하기
public class parse01 {
public static void main(String[] args) {
String strScore = "100";
String strMoney = "10000000000";
String strGrade = "4.5";
int score = Integer.parseInt(strScore);
long money = Long.parseLong(strMoney);
double grade = Double.parseDouble(strGrade);
System.out.println(score);
System.out.println(money);
System.out.println(grade);
}
}
숫자 데이터를 문자열로 변환하기
public class parse02 {
public static void main(String[] args) {
int age = 100;
String strAge = String.valueOf(age);
System.out.println(strAge);
}
}