먼저!
정수형에서 실수형으로
실수형에서 정수형으로 형변환을 해보자.
// 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.
'백엔드 > 나도코딩 자바' 카테고리의 다른 글
[나도코딩 자바 챕터1] 문제 풀어보기 Quiz 결과 (0) | 2023.08.13 |
---|---|
[나도코딩 자바 챕터1] 형변환하기(후반전) 숫자열<->문자열 (0) | 2023.08.13 |
[나도코딩 자바 챕터1] 상수란? final로 예약어 지정, 변수는 대문자로만 (0) | 2023.08.13 |
[나도코딩 자바 챕터1] 변수로 이름 짓는 법, 상수란? (0) | 2023.08.13 |
[나도코딩 자바 챕터1] 주석처리 (0) | 2023.08.13 |