# 이번 주 수입은?
#### 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....이렇게되서요?
goodlife1359님의 답변
# printf 메소드와 %f
%.2f는 소수점 아래 두번쨰 자리 까지 만 출력하겠다는 의미입니다.
```
// 전부다 더했을때 값이 48.690000 인데
double sum = 월요일 + 화요일 + 수요일 + 목요일 + 금요일;
// 48.690000의 소수점 아래 두번째 자리까지 출력
// => 48.69가 출력됩니다.
System.out.printf(“$ %.2f”, sum);
```
"%.2f"의 의미는 출력할 sum변수의 타입이 실수 타입이고,
소수점아래 두번쨰 자리까지만 출력하겠다는 의미입니다.
oktmddnjs님의 답변
일단은 String인 문자타입을 double 타입으로 변환해야되는건아닌가요?
아직 명령어를 배우지 못해서 저도 잘모르겟지만
double 월요일 = Integer.parseInt(args[0]) 이런식으로요
goodlife1359님의 답변
문제의 목적이 월요일부터 금요일까지 총 수입의 합을 계산하는것 입니다.
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]);