백엔드/나도코딩 자바
[나도코딩 자바 챕터1] 형변환하기(전반전) 정수형<->실수형
응개야
2023. 8. 13. 01:00
먼저!
정수형에서 실수형으로
실수형에서 정수형으로 형변환을 해보자.
// int to flat, double
int score = 93;
System.out.println(score); //93
System.out.println((float) score); //93.0
System.out.println((double) score); //93.0
score라는 변수에 정수형 값 93을 선언해줬다.
출력해본다면 93이 뜬다.
실수형으로 변환하고 싶다면
sout () 괄호 안에
(float) 실수형 예약어를 한번 더 넣고 출력해보자. 그럼 값은 93.0 즉 실수형 값으로 나온다.
double 실수형으로 변환도 똑같이 하면 된다.
//flat,double to int
float score_f = 93.3F;
double score_d = 98.8;
System.out.println((int) score_f); //93
System.out.println((int) score_d); //98
실수형 float score_f 값에 93.3을 선언.
실수형 double score_d 값에 98.8을 선언.
정수형으로 형변환은
sout () 안에 int를 넣어주고 출력하면 형변환이 된다.
// 정수 + 실수 연산
score = 93 + (int) 98.8;
System.out.println(score);
정수+실수를 연산할때는
실수 값을 정수로 바꿔줘야한다.
앞에 (int) 값을 넣어주었다. 출력값은 // 191
score_d = 93 + 98.8; // 자동으로 double로 계산 됨 191
System.out.println(score_d); // 실수로 191.8
score_d는 앞앞 예제에 실수형으로 선언이 되었기땜에
93이라고 적어놨지만 자동으로 93.0 즉 double으로 설정
오류가 나지 않고
93+98.8 실수 + 실수 연산이 된다. //191.8
// 변수에 형변환된 데이터 집어넣기
double convertedScoreDouble = score; // 191 -> 191.0
// int -> long -> float -> double (자동으로 형변환)
score는 191로 정수변수이지만
double을 써서 형변환을 시키려고 한다.
그럼 무리없이 191에서 191.0로 실수가 된다.
왜냐하면 int -> long -> float -> double 순으로(범위가 넓은) 오름차순이라 무리가 없기때문이다.
int convertedScroeInt = (int)score_d; //191.8 -> 191
// double -> float -> long ->int는 수동으로 형변환
반대로 실수변수에서 정수변수로 형변환하려면 //191.8 -> 191
넓은 범위(실수)를 작은 범위(정수)로 다운그레이드 해야하기땜에
수동으로 형변환을 시켜줘야 한다.
앞에 (int)를 넣어 한번더 입력시켜주면 done.