Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 비동기
- deferred
- 외부접속
- DAO
- Spring
- modal #alert #sweetalert #sweetAlert #모달
- REST
- egov
- Controller
- SpringFramework
- Boot
- paginationInfo
- CRUD
- 우리마
- 대댓글
Archives
- Today
- Total
우리마의 웹 개발
[JAVA]소수점 n번째 자리 반올림(Math.round, String.format) 본문
어떠한 값의 평균값 따위를 구할 때나 실수를 이용한 데이터를 원하는 소수점 자리 까지만 출력할 때 반올림을 해야 할 일이 있을 거다
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 |
'WEB > Java&Js' 카테고리의 다른 글
[Jquery] 비동기 프로그래밍을 위한 Promise와 Deferred Object (13) | 2021.07.01 |
---|---|
[JavaScript] BackTick(`) 과 document객체 쓸때 꿀팁 (1) | 2020.01.17 |
Comments