JAVA
변수,자동형변환,실수형변환 수업정리
연93
2022. 9. 5. 12:56
public static void main(String[] args) {
//실수값 저장. float(4), double(8)기본
//3.14, 3.14d, 3.14D 동일한 double 실수데이터타입 표현. 8byte크기
double var1 = 3.14;
//4byte의 기억장소에 3.14 8byte크기의 데이터를 저장(대입) 할 수가없다.
//float var2 = 3.14;
float var3 = 3.14F;
//정밀도 테스트
double var4 = 0.1234567890123456789;
float var5 = 0.1234567890123456789f;
System.out.println("var1: " + var1);
System.out.println("var3: " + var3);
System.out.println("var4: " + var4);
System.out.println("var5: " + var5);
// e 사용하기
int var6 = 3000000;
double var7 = 3e6;
float var8 = 3e6F;
double var9 = 2e-3; // 2의10의-3승
System.out.println("var6: " + var6);
System.out.println("var7: " + var7);
System.out.println("var8: " + var8);
System.out.println("var9: " + var9);
자동형변환
//형변환(Casting)
//1)자동형변환(Promotion) - 작은 데이터타입의 값으 큰 데이터타입의 변수로 저장시 형변환을 하지않고,자동처리
// 숫자 데이터타입 크기(서열). 정수형 데이터타입보다는 실수형 데이터타입이 더 큰 개념으로 정의되어있다.
// byte < short(char) < int < long < float < double
// 작은데이터타입의 값을 큰 데이터타입의 기억장소에 자동으로 형변환과정이 일어나 저장이 이루어진다.
// 변수 = 값; 값이 좌측의 변수의 타입에 맞게 형변환이 일치해야 한다.(타입일치)
byte byteValue = 10;
// int > byte
int intValue /*큰 데이터타입*/ = byteValue; /*작은데이터타입*/
// 자동형변환. byteValue변수의 값을 읽어와서 int형변환하고 대입된다.
System.out.println(intValue);
char charValue = '가';
intValue = charValue;
System.out.println("가의 유니코드=" + intValue);
intValue = 500;
// intValue변수의 값을 읽어와서, 좌측의 변수 데이터타입 long형으로 변환되어, 값이 대입된다.
// 타입이 일치되서 대입이된다
long longValue = (long) intValue (500); // 500L;
System.out.println(longValue);
intValue = 200;
double doubleValue = intValue;
System.out.println(doubleValue);
intValue앞 long 뒤 500은 예시
명시적 형변환
//2)명시적형변환(Casting) - 큰데이터타입의 값을 작은 데이터타입의 변수로 저장시 형변환작업을 명시적으로 해야 한다.
// 우측이 큰 데이터타입 일경우에는 자동형변환이 발생되지않는다.
// = 기준으로 우측의 값이 좌측의 타입과 일치를 하고, 대입된다.(타입일치)
int intValue = 44032;
// 정수값을 문자로 표현할 경우에는 char데이터 타입을 변환시켜야한다.
// 정수값범위 : 0~65535 사용해야한다
char charValue = (char) intValue;
System.out.println(charValue);
long longValue = 500;
intValue = (int) longValue;
System.out.println(intValue);
// 실수값을 정수값으로 저장시 반올림없이 소수 부분은 제거된다
double doubleValue = 3.14;
intValue = (int) doubleValue; // int형으로 변환
System.out.println(intValue);
범위확인
// 기본데이터타입(원시타입) 8개.
// 기본데이터타입의 값의 범위
System.out.println("byte: " + Byte.MIN_VALUE + " ~ " + Byte.MAX_VALUE);
System.out.println("byte: " + integer.MIN_VALUE + " ~ " + integer.MAX_VALUE);
int i = 128;
// i변수의 값이 -128보다 작거나 i의 변수의 값이 127보다 큰경우
if((i<Byte.MIN_VALUE) || (i>Byte.MAX_VALUE)) {
System.out.println("byte타입으로 변환 불가능");
}else {
byte b = (byte)i;
System.out.println(b);