문제
원문: www.codeup.kr/problem.php?id=1029
실수 1개를 입력받아 그대로 출력해보자.
(단, 입력되는 실수의 범위는 +- 1.7*10-308 ~ +- 1.7*10308 이다.)
참고
float 데이터형을 사용하면 +- 3.4*10-38 ~ +- 3.4*1038 범위의 실수를 저장할 수 있다.
(float 로 선언하고 %f로 입력 받아 출력하면 된다.)
이 범위를 넘어가는(더 작거나 더 큰) 실수를 저장하기 위해서는
보다 큰 범위를 저장할 수 있는 다른 데이터형을 사용해야 정상적으로 저장시킬 수 있다.
double은 더 정확하게 저장할 수 있지만, float보다 2배의 저장 공간이 필요하다.
double 데이터형을 사용하면
+- 1.7*10-308 ~ +- 1.7*10308 범위의 실수를 저장할 수 있다.
예시
double d;
scanf("%lf", &d); // double(long float) 형식으로 입력
printf("%lf", d);
입력
소수점 아래 숫자가 11개 이하인 실수 1개가 입력된다.
(단, 입력되는 실수의 범위는 +- 1.7*10-308 ~ +- 1.7*10308 이다.)
3.14159265359
출력
입력된 실수를 소수점 이하 11자리까지 반올림하여 출력한다.
참고
%.11lf 를 사용하면 소수점 이하 11자리까지 출력된다.
3.14159265359
Java 풀기
float로는 소숫점 7자리까지밖에 표현하지 못한다.
그래서 Double형으로 타입을 변환하여 출력한다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
final BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.printf("%.11f", Double.parseDouble(br.readLine()));
}
}
채점결과
위 풀이는 직접 풀어보고 채점까지 한 뒤에 확인하여 올린 코드입니다.
궁금한점이나 더 좋은 방법이 있다면 아래 댓글 달아주세요. 감사합니다.
관련 글
'Algorithm > CodeUp' 카테고리의 다른 글
CodeUp 1031번 - 10진 정수 1개 입력받아 8진수로 출력하기 (Java 풀이) (0) | 2020.10.20 |
---|---|
CodeUp 1030번 - 정수 1개 입력받아 그대로 출력하기3 (Java 풀이) (0) | 2020.10.19 |
CodeUp 1028번 - 정수 1개 입력받아 그대로 출력하기2 (Java 풀이) (0) | 2020.10.18 |
CodeUp 1027번 - 년월일 입력 받아 형식 바꿔 출력하기 (Java 풀이) (0) | 2020.10.18 |
CodeUp 1026번 - 시분초 입력받아 분만 출력하기 (Java 풀이) (0) | 2020.10.17 |