안녕하세요! 혼공학습단 13기에 참여하게 된 이세언입니다.
1주차 과제 제출합니다!
참고로 저는 맥북 사용자여서 설치 / 환경변수 설정 방법이 달랐습니다.
관련 내용은 따로 정리해 놓았습니다!
기본숙제: JDK 설치화면 인증하기
추가숙제: 02-3 확인문제 9번 풀이
![]() | ![]() |
---|
🔎 첫 번째 코드 설명
package day1;
public class Number9 {
public static void main(String[] args) {
long var1 = 2L;
float var2 = 1.8f;
double var3 = 2.5;
String var4 = "3.9";
int result = (int)var1 + (int)(var2 + var3) + (int)Double.parseDouble(var4);
System.out.println(result);
}
}
var1은 long 타입, int로 변환해도 값에 변화가 없으므로 2가 된다.
var2는 float, var3은 double 타입.
float과 double 타입이 연산될 때, 타입 승격이 일어나 float는 double로 변환됨.
따라서 var2 + var3 = 1.8 + 2.5 = 4.3을 (int)로 변환하면 소수점 이하가 버려지고 4가 된다.
Double.parseDouble(var4)는 3.9라는 실수 값을 반환, (int)3.9를 하면 소수점 이하가 버려져 3이 된다.
따라서, 2 + 4 + 3 = 9가 된다.
🔎 두 번째 코드 설명
package day1;
public class Number9 {
public static void main(String[] args) {
long var1 = 2L;
float var2 = 1.8f;
double var3 = 2.5;
String var4 = "3.9";
int result = (int)(var1 + var2 + var3) + (int)Double.parseDouble(var4);
System.out.println(result);
}
}
(int)(var1 + var2 + var3)
var1 + var2 + var3은 서로 다른 타입의 숫자가 더해진다.
자바의 타입 승격이 발생하여, float과 long이 double로 변환된다.
따라서, 2.0 + 1.8 + 2.5 = 6.3
(int)(6.3) = 소수점 이하가 버려져 6이 된다.
첫 번째 코드와 마찬가지로 문자열 3.9 ➡️ doulbe 변환 ➡️ int를 하면 소수점 이하가 버려져 3이 된다.
6 + 3 = 9가 된다.