Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

우리마의 웹 개발

[JAVA]소수점 n번째 자리 반올림(Math.round, String.format) 본문

WEB/Java&Js

[JAVA]소수점 n번째 자리 반올림(Math.round, String.format)

우리마 2020. 2. 10. 13:19

어떠한 값의 평균값 따위를 구할 때나 실수를 이용한 데이터를 원하는 소수점 자리 까지만 출력할 때 반올림을 해야 할 일이 있을 거다

 

Math.round()

Math.round 함수는 무조건 소수 첫 번째 자리를 반올림하여 정수 값을 리턴한다.

하지만 우리가 원하는n번째 자리까지 나타내고 싶을 때는 이 함수를 조금 응용을 해야 한다.

소수 셋째 자리에서 반올림해서 둘째 자리 까지만 나타내고 싶을 때를 예로 들겠다.

1
2
3
4
double pie = 3.14159265358979;
System.out.println(Math.round(pie)); //결과 : 3
System.out.println(Math.round(pie*100); //결과 : 314
System.out.println(Math.round((pie*100)/100.0); //결과 : 3.14
cs

이렇게 먼저 100을 곱한 것을 Math.round메서드를 적용시키고 100.0을 나누어주면 실수 값이 출력된다. 당연히 첫째 자리는 10 곱하고 10.0 나누고 셋째 자리는 1000 곱하고 1000.0 나누고... 참고로 올림은 Math.ceil()  내림은 Math.floor() 

String.format()

String클래스의 format메서드를 이용한 방법도 있는데 이름에서 보듯이 출력할 형식을 지정해주는 것이다.

1
2
3
4
5
double pie = 3.14159265358979;
double money = 4424.243423;
System.out.println(String.format("%.2f", pie)); //결과 : 3.14
System.out.println(String.format("%.3f", pie)); //결과 : 3.142
System.out.println(String.format("%,.3f", money)); //결과 : 4,424.243
cs

c언어에서 printf함수를 이용해 원하는 소수점 자리 까지 나타내는것과 비슷하다.

 f앞에 숫자+1 한 소숫점 자리를 반올림해서 나타낸다.

그리고 자동으로 세 자리마다 콤마(,)를 붙여주기도 한다....(LINE 5)

 

차이점

먼저  Math.round() 메서드는 소수점 아래가 0일 경우 정수 값으로 리턴 하지만 String.format() 메서드는 소수점 아래 값이 0인 것도 출력해 실수 값으로 리턴한다.

1
2
3
double money = 5000.000;
System.out.println(Math.round(money*1000)/1000); //결과 5000
System.out.println(String.format("%.3f", money)); //결과 : 5000.000
cs
Comments