1. double a = 5/2; 더블이면 실수형이라 2.5 로 표현되는게 아닌가요? printf 로 출력했을 땐 2.000000 println 으로 출력했을 땐 2.0 2. double b = 5.0 / 2.0; 이것 2.5가 나오는거는 알겠습니다. printf 로 출력했을 땐 2.500000 println 으로 출력했을 땐 2.5 무슨 차이인가요? 3. double c = (int) (5.0 / 2.0); 2.5 인데 int로 캐스팅을 해서 답은 2 아닌가요? 답변 부탁드립니다.ㅠ
# 타입과 형변환 ## 답변 1 질문 코드의 실행흐름은 아래와 같습니다. ``` // 초기 코드 double a = 5 / 2; // 나눗셈 연산 double a = 2; // 5 / 2 는 int 값이므로 2가 됨. // 대입 연산 double a = 2; // 이때 자동 형변환 됨. 따라서 a = 2.0 ``` ## 답변 2 printf()의 경우 소수점 이하 6자리까지 출력합니다. println()은 그렇지 않습니다. ## 답변 3 질문 코드의 실행 흐름은 아래와 같습니다. ``` // 초기 코드 double c = (int) (5.0 / 2.0); // 나눗셈 연산 double c = (int) 2.5; // 캐스팅 double c = 2; // 대입 연산 double c = 2; // 이때 자동 형변환. 따라서 c = 2.0 ```