본문 바로가기
Study/JAVA

소수점 반올림(Math.round)

by Answer Choi 2015. 2. 11.
반응형

연산을 하다보면 소수점이 한없이 길게 나올 때가 있습니다.. 

 

예를들면 10/3같은 경우;;

 

이때 어디까지 표시를 할것인가? 라는 생각에 직면하게 됩니다.

 

저도 이번 전력측정앱을 만들다가 측정값이다보니 한없이 길어지는군요..

 

그러나 표시되는 영역은 제한이 되어있고~그래서 이런 저런 메소드 들을 찾아봤습니다.


일단 가장 쉽게 찾을 수 있는 자르기!!


이건 스트링으로 바꿔서 포맷에 맞게 잘라주는거~


예를들어 결과값이 231.133 V가 나왔다고 칩시다.


저는 소수점 1째 자리까지만 보고싶어요~ 


그럼 String.format을 써봅시다.


1
2
Vrms=231.153;
String result=String.format("%.1f",Vrms);
cs


이렇게 하면 result값은 231.1 이 나옵니다. "%.1f"에서 숫자 1은 소수점 자리수 입니다.

 

String 값으로 정해진 포맷대로 잘라주는 것이라 버림이라 생각하시면 됩니다.

 

하지만 이렇게 구하면 String값이라 이 값으로 재연산 할 수 가 없어요. 물론 형변환을 하면 되긴 합니다만.;;

 

그래서 JAVA의 MATH class를 이용해 봅시다.

 

이 안에 보면 유용한 메소드 들이 많이 있습니다.

 

반올림을 위한 round 메소드, 올림을 위한 ceil메소드, 버림을 위한 floor메소드 등이 있습니다.

 

일단 round메소드만 알아보겠습니다.

 

1
2
Vrms=231.153;
double show_volt=Math.round(Vrms*10d)/10d;
cs


 Vrms에서 바로 반올림(Math.round(Vrms)) 만 하게 되면 231만 리턴이 됩니다. 

 

왜냐하면 int형이나 long형 으로 반환되기 때문이죠.

 

따라서 조금의 수고를 해줘야 합니다. 

 

바로 10을 곱해주고, 반올림을 하고, 10을 다시 나누어 주는 겁니다. 

 

그렇게 하면 소수점 1째짜리까지 반올림을 하게 되어 213.2가 나오게 됩니다.

 

자세한 건    자바API를 참고하세용.

 

ceil과 floor도 해보시기 바랍니다.

 

 



반응형

'Study > JAVA' 카테고리의 다른 글

JAVA EXE(실행파일)로 만들기(jsmooth)  (0) 2015.02.12
eclipse에 JAVA swing plug-in 하기  (0) 2015.02.12
JAVA SWING TCP/IP Client  (0) 2015.02.12
java SimpleDateFormat  (0) 2015.02.12
랜덤변수 출력하기!!  (0) 2015.02.11

인기글