본문 바로가기

코드업(CodeUp)/기초 100제

[코드업/자바] 기초 100제 - 실수 1개 입력받아 그대로 출력하기2

1029 : [기초-데이터형] 실수 1개 입력받아 그대로 출력하기2

1. 실수 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);

 

2. 소수점 아래 숫자가 11개 이하인 실수 1개가 입력된다.
(단, 입력되는 실수의 범위는 +- 1.7*10-308 ~ +- 1.7*10308 이다.)

 

3. 입력된 실수를 소수점 이하 11자리까지 반올림하여 출력한다.


참고
%.11lf 를 사용하면 소수점 이하 11자리까지 출력된다.


소수점 11자리 이상이면 반올림해야하고 11자리 이하라면 0을 11자리까지 붙여서 출력해야한다.

String형식으로 입력받아 소수점을 기준으로 소수점의 자리수를 확인한다.

그래서 11자리보다 작으면 0을 붙인다.

import java.util.*;

public class Exercise {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String str = sc.nextLine();

		String[] arr = str.split("\\.");

		while (arr[1].length() < 11) {
			arr[1] += "0";
		}

		System.out.println(arr[0] + "." + arr[1]);
	}
}

728x90
반응형