Java - 반올림해서 소수점 n번째 자리까지 출력

JS · 20 Oct 2020

반올림해서 소수점 n번째 자리까지 출력하는 방법을 소개합니다.

String.format()

가장 간단한 것은 String.format()을 이용하는 방법입니다.

format(format, args)은 인자로 전달된 format에 맞게 문자열을 만들어 리턴해 줍니다.

다음과 같이 format을 "%.6f"로 전달하면 소수점 7번째 자리를 반올림하여 소수점 6번째 자리까지만 표현하라는 의미입니다.

double pi = 3.14159265359;

System.out.println(String.format("%.6f", pi));

결과를 보면 소수점 6번째자리 까지 표현이 됩니다.

3.141593

Math.round()

Math.round()를 이용하여 소수점 n번째 자리까지 출력할 수 있습니다.

round(float a)는 인자로 전달된 float을 가장 가까운 int로 반올림하여 리턴합니다.

System.out.println(Math.round(3.1));
System.out.println(Math.round(2.9));
System.out.println(Math.round(2.5));
System.out.println(Math.round(2.49));

결과를 보면 반올림하여 가까운 int로 리턴되는 것을 알 수 있습니다.

3
3
3
2

다음과 같이 float에 100을 곱한 값을 round()로 반올림하고, 다시 100으로 나누면 소수점 2번째 짜리까지 출력됩니다.

double pi = 3.14159265359;

System.out.println(Math.round(pi * 100));

System.out.println(Math.round(pi * 100) / 100.0);

Output:

314
3.14

위의 코드는 pow()를 이용하여 다음과 같이 함수로 만들 수 있습니다. pow(10.0, n)는 10.0의 n 제곱을 리턴합니다.

double pi = 3.14159265359;
int n = 6;
System.out.println(round(pi, n));


public double round(double number, int n) {
    double m = Math.pow(10.0, n);
    return Math.round(number * m) / m;
}

Output:

3.141593
댓글을 보거나 쓰려면 이 버튼을 눌러주세요.
codechachaCopyright ©2019 codechacha