: 자료형(타입)이 일치한 것만 변수에 저장해준다.
: 자료형 타입을 다른 자료형 타입으로 바꾸는 것
public class Casting1{
public static void main(String[] args){
int num = 10;
// 정수 자료형, 정수 숫자만 대입 가능
double num2 = 10.1;
// 실수 자료형, 실수 숫자만 대입 가능
// num = num2;
// 불가능 >> int num = 10.1;와 같음
// double 타입이 int 타입에 대입할 수 없다.
num2 = num;
// 가능
// int 값이 double 변수에 들어갔다x
// int 타입이 double타입으로 모습을 바꿔서 대입되었다.
// 모습을 바꿔서 >> '형변환'
}
}
public class Casting{
public static void main(String[] args){
int num = 10;
// 정수 자료형, 정수 숫자만 대입 가능
double num2 = 10.1;
// 실수 자료형, 실수 숫자만 대입 가능
// 정수가 실수가 되는 것은 안전하다.
// 즉 데이터의 소실이 없다.
// 10 => 10.0 .소숫점이 붙지만
// 결과적으로 같은 값이다.
// 안전한 변환은 자바가 대신 자동으로 해줌
// >> 자동 형변환
// 실수가 정수가 되는 것은 위험하다.
// 즉, 데이터의 소실이 발생할 수 있다.
// 10.3 => 10
// 0.3에 대한 데이터의 소실이 발생한다.
// 위험한 변환은 자바가 막는다.
// 에러가 나고, 개발자가 강제로 변환
// >> 수동 형변환
num2 = num; // 안전한 자동형변환
num = (int)num2;
// 값 앞에 ()넣고 변화할 타입을 넣으면 형변환을 강제로 시도할 수 있다.
// 강제형변환
}
}
public class Main {
public static void main(String[] args) {
// 변수는 수정하지 않습니다.
int num1 = 10;
int num2 = 4;
//**대전제**
// 정수는 정수끼리 계산이 가능하고 결과는 정수로 나온다.
// 실수는 실수끼리 계산이 가능하고 결과는 정수로 나온다.
// 정답 1
System.out.println((double)num1 / (double)num2);
// 정답 2
System.out.println((double)num1 / num2); // 출력 : 2.5
// num1은 int타입에서 double타입으로 수동형변환하였다.
// num2는 실수와 정수로 계산이 불가능하기 때문에
// 계산이 가능하도록 double 타입으로 자동형변환 되었다.
}
}
: 형변환은 유사한 타입에서만 가능하다.
: 숫자타입 Short