# 리뷰: 온도 변환하기
왜 printf에선 .1을 안써주면 답이 이상하게 나올까요?
#### CODE <a class='btn btn-default' href='/codes/26612'>Link</a>
```
public class Lab03Review {
public static void main(String[] args) {
/* 1. 문자열을 실수로 변환하세요. */
double a = Double.parseDouble(args[0]);
/* 2. 화씨온도를 섭씨로 변환하세요. */
double b = (a-32.0)/1.8;
/* 3. 결과를 출력하세요. */
System.out.printf("화씨 %.1f도는 섭씨로 %.1f도 입니다!", a, b);
}
}
```
#### INPUT
```
77.0
```
#### OUPUT
```
화씨 77.0도는 섭씨로 25.0도 입니다!
```
sehongpark님의 답변
# printf의 실수 출력은
기본적으로, 소숫점 이하 여섯째 자리까지 출력합니다. 따라서 문제에서 원하는 결과를 얻기 위해서 `.1`을 넣어야합니다.
```
화씨 77.000000도는 섭씨로 25.000000도 입니다!
```
## PS.
질문 감사합니다 (_ _)
goodlife1359님의 답변
입력 값 77.0이 double 타입으로 형변환 되어 변수 a에 저장됩니다.
현재 a에 저장된 값이 77.000000 인데 (a-32.0)/1.8 식에 넣어 계산하면 25.000000 이 변수 b에 저장됩니다.
b의 값을 %f로 출력하면 25.000000 인데 25. 뒤에 소수점이하 첫째자리 까지만 출력하기 위해 %.1f 를 사용하여 b의 값을 출력하면 25.0 이 출력됩니다.
즉 %.1f 의 의미는 소수점이하 첫째자리 까지만 출력하겠다는 의미 입니다.
soundnine님의 답변
답변 감사드립니다