Programming Language/Java

[JAVA] 소수점 n번째 자리까지 반올림하여 나타내기

BS Kwak 2021. 1. 17. 16:56

소수점 n번째 자리까지 나타내는 방법에는 2가지가 있다. 

첫번째로, Math.round()함수를 이용하는 방법

두번째로, String.format()함수를 이용하는 방법

 

1. Math.round()함수

round함수는 소수점 첫번째 자리를 반올림하여 정수로 리턴하는 함수인데, 이를 이용하여 소수 두번째자리, 세번째 자리, 등등을 나타낼 수 있다. 

3.1415를 예로 들면, 

3.1415를 round하면, 4가된다.

3.1415에 100을 곱한 후에 round하면? 314가 된다. 여기서 100.0을 다시 나눠주면 3.14가 된다. 

이렇게 되면 소수점 둘째까지 반올림 한 값을 표현하게 되는 것이다. 

셋째자리를 표현하고자 한다면?

3.1415에 1000을 곱한 후에 round하고 다시 1000.0으로 나누어 주면 된다. 

float n = 3.1415;
System.out.println(Math.round(n*100)/100.0); //소수점 아래 둘째자리까지 반올림
System.out.println(Math.round(n*1000)/1000.0); //소수점 아래 셋째자리까지 반올림

하지만, Math.round()함수는 소수점 아래 숫자가 0이면 과감히 버려버리기 때문에 3.00 이렇게 표현하고 싶다면, 해당 함수를 사용하면 안된다. 그 대안이 String.format()함수이다.

 

2. String.format()함수

String클래스의 format 함수는 리턴되는 문자열 형태를 지정하는 함수인데, 이 함수를 이용하여 소수점 n번째자리 까지 나타낼 수 있다. 

String.format(format,args)형태로 사용한다.

예를 들면..

float n=3.1415;
System.out.println(String.format("%3f",n)); //소수점 아래 셋째자리까지 출력

 

 

 

 

<참고>:coding-factory.tistory.com/250