Daily coding
Java Basic : day 1 - 데이터형 별 크기 / Type cast 본문
우선순위
boolean 1 byte
byte 1 byte -128 ~ 127
short 2 byte
int 4 byte
long 8 byte
float 4 byte
double 8 byte
//byte ----> double 순으로 우선순위
char 2 byte
String ?
Type Cast
자료형 변환 ( 자동 형변환 / 강제 형변환 )
//자동 형변환 : 더 작은 타입의 데이터를 더 큰 타입의 데이터로 자동으로 변환해줌
short sh = 123; // 2 byte
int i ; // 4 byte
i = sh; // 더큰 데이터 타입으로 자동 형변환 됨
System.out.println("i : " + i);
i = 2345;
//sh = i;
//더 큰 데이터 타입을 작은 데이터 타입으로 넣을 때 자동 형변환이 되지 않음
//강제 형변환
: 더 큰 데이터 타입이 더 작은 데이터 타입으로 형변환하는 것은 명시적으로 표기해줘야 함 ( + 데이터 손실 가능 )
sh = (short) i ;
System.out.println(sh);
//long 타입도 L을 명시적으로 붙여줘야 함.
//그렇지 않으면 기본형인 int가 됨
long l = 12343423223L;
float f = l;
System.out.println("f = " + f);
// E
// f = 1.2343423E10 ---> E * 10 : E = * , 10 => 10승 (10자리임)
double d = l;
System.out.println("d = " + d);
//float 가 double 보다 더 많은 자릿수를 보여줌
int number;
double dNumber = 123000.456;
//소수점을 떼 놓기 위해 캐스트 변환 (세금 등에서 계산 많이 씀)
number = (int)dNumber;
System.out.println("number = " + number);
int num1, num2;
double result;
num1 = 5;
num2 = 2;
result = num1 / num2;
// 자동형변환 : 2 --> 2.0
System.out.println("result : " + result); //2.0이 나온다.
// 둘 중 하나만 더블로 형변환을 하면 나머지도 자동으로 double형으로 형변환이 되어 연산
result = (double)num1 / num2;
System.out.println("result : " + result); //2.5가 나온다.
// 1.2345e20
double f1 = 1.234567E3; //E3 = *10*10*10 임
System.out.println("f1 : " + f1); //결과는 f1 = 1234.567
f1 = 123.4567E-2; //E-2 : * 1/10 * 1/10
System.out.println("f1 : " + f1); //결과는 f1 = 1.234567
'Language > Java_basic' 카테고리의 다른 글
Java Basic : day 1 - Example 02 - swapping (0) | 2019.11.19 |
---|---|
Java Basic : day 1 - Example 01 (0) | 2019.11.19 |
Java Basic : day 1 - 배열 + Alias / swapping (0) | 2019.11.19 |
Java Basic : day 1 - 데이터 타입별 Scanner 사용법 (next 메소드) (0) | 2019.11.19 |
Java Basic : day 1 - Java 기초와 변수 / 상수/ 기본형 데이터타입 (0) | 2019.11.18 |