# 이번 주 수입은? #### CODE <a class='btn btn-default' href='/codes/26170'>Link</a> ``` public class Income { public static void main(String[] args) { /* 1. 변수 생성 */ double 월요일 = 8.62; double 화요일 = 10.23; double 수요일 = 12.48; double 목요일 = 7.82; double 금요일 = 9.54; /* 2. 총합 계산 */ double sum = 월요일 + 화요일 + 수요일 + 목요일 + 금요일; /* 3. 총합 출력 */ System.out.printf("$ %.2f" , sum); } } ``` #### INPUT ``` ``` #### OUPUT ``` $ 48.69 ``` // 총합 출력 System.out.printf("$ %.2f", sum); 이부분에서 "$ %.2f" 이부분이 처음에 실수가 많앗는데 처음에 적기를 System.out.printf("$" %.2f + sum); 이렇게 적엇거든요.. 객체지향으로 일단은 "$ %.2f" 문자로 따지는게 아닌건가요? %.2f 는 두번째 자리 소수점 까지 반올림하여 표시한다는 말인가요..? 실제로 컴퓨터에선 45.689999....이렇게되서요?
# printf 메소드와 %f %.2f는 소수점 아래 두번쨰 자리 까지 만 출력하겠다는 의미입니다. ``` // 전부다 더했을때 값이 48.690000 인데 double sum = 월요일 + 화요일 + 수요일 + 목요일 + 금요일; // 48.690000의 소수점 아래 두번째 자리까지 출력 // => 48.69가 출력됩니다. System.out.printf(“$ %.2f”, sum); ``` "%.2f"의 의미는 출력할 sum변수의 타입이 실수 타입이고, 소수점아래 두번쨰 자리까지만 출력하겠다는 의미입니다.
일단은 String인 문자타입을 double 타입으로 변환해야되는건아닌가요? 아직 명령어를 배우지 못해서 저도 잘모르겟지만 double 월요일 = Integer.parseInt(args[0]) 이런식으로요
문제의 목적이 월요일부터 금요일까지 총 수입의 합을 계산하는것 입니다. double 월요일 = 8.62; double 화요일 = 10.23; double 수요일 = 12.48; double 목요일 = 7.82; double 금요일 = 9.54; 현재 변수가 5개가 선언되어져 있고 각 변수에는 double(실수) 타입의 값이 저장되어져 있습니다. 문제에서 총 수입의 합을 계산하라고 했기때문에 변수에 저장된 값을 더해줘야 합니다. 월요일변수에는 8.62 화요일 변수에는 10.23 이런식으로 저장되있습니다. double sum = 월요일 + 화요일 + 수요일 + 목요일 + 금요일; 이 식의 목적은 각 변수에 저장된 값을 더하겠다는 의미입니다. 즉 double sum = 8.62 + 10.23 + 12.48 + 7.82 + 9.54 입니다. 코드에서 String[] args이부분이 햇갈리신거 같은데 코드를 실행할때 값을 입력받는경우에 얘를들어 INPUT 창에 값 8.62를 입력하는 경우 8.62가 args[0](args배열의 0인덱스)에 저장되어집니다. 그런데 args[0]에 저장된 값의 타입이 String(문자열) 타입이기 떄문에 이때는 args[0]에 저장된 값을 double타입으로 형변한후 사용해줘야 합니다. double 월요일 = Double.parsedouble(args[0]);