본문 바로가기

알고리즘/JAVA

[JAVA] 소수점 자릿수 출력하기(백준 3053, 택시 기하학)

실수를 출력해야 하는 상황에서, 소수점을 원하는 자릿수만큼 출력해야 하는 상황이 존재한다.

 

 

 

String.format("%.nf", 실수)

 

 

 

실수는 double형이나 float형을 사용할 수 있고, n은 몇 번째 자릿수까지 표기할 것에 관한 변수이다.

 

 

 

실제 적용해볼 수 있는 문제로 아래 문제를 추천한다.

 

 

 

https://www.acmicpc.net/problem/3053

 

3053번: 택시 기하학

문제 19세기 독일 수학자 헤르만 민코프스키는 비유클리드 기하학 중 택시 기하학을 고안했다. 택시 기하학에서 두 점 T1(x1,y1), T2(x2,y2) 사이의 거리는 다음과 같이 구할 수 있다. D(T1,T2) = |x1-x2| + |

www.acmicpc.net

 

 

 

해설코드(Java).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import java.util.*;
import java.lang.*;
import java.io.*;
 
class Main
{
    public static void main (String[] args) throws java.lang.Exception
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        double R = (double)Integer.valueOf(br.readLine());
        
        bw.write(String.format("%.6f", R * R * Math.PI) + "\n");
        bw.write(String.format("%.6f", R * R * 2+ "\n");
        
        bw.flush();
    }
}