public class Test1 {
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); // 9
}
}
[문제 풀이]
var1 + var2 + var3은 각기 다른 타입으로 가장 큰 double형태로 자동 타입 변환 후 더해져 6.3이 나오고 int 형태로 강제 형변환 후 소수점 이하는 버려지게 되어 결과적으로 (int)(var1 + var2 + var3) = 6이 된다.
var4는 String형태라서 double형태로 강제 형변환 후 3.9에서 int 형태로 강제 형변환 후 소수점 이하가 버려져 결과적으로 (int)Double.parseDouble(var4) = 3이 된다.
따라서 result는 9이다.
public class Test1 {
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) + (int)(var3 +Double.parseDouble(var4));
System.out.println(result); // 9
}
}
[문제 풀이]
var1 + var2는 float형태로 더한 후 int로 강제 형변환 후 소수점 이하는 버려지게 되어
결과적으로 (int)(var1 + var2) = 3이 된다.
var3은 String형태이므로 double로 강제 형변환 후 3.9에서 int 형태로 강제 형변환 후 소수점 이하가 버려져 결과적으로 (int)(var3 +Double.parseDouble(var4) = 6이 된다.
따라서 result는 9이다.