java에서 계산을 하다보면 소수점이 끝없이 갈 때가 있습니다. 예를들어 .333333333..., .666666... 등등..

아니면 소수점이 길어져 반올림을하거나 어느부분에서 자르고싶을때 방법이 있습니다.

 

int num = 302;
double divide = num / 3  //소수점 두자리까지만

위의 문제에 대해 세가지 방법으로 설명하겠습니다.

 

 

1. 일반 double

int num = 302;
double divide = num * 100 / 3 /100.0;

num * 100 / 3 까지는 10066.0이 되고, 그 뒤에 100.0을 나누어 소수점 두자리가 완성됩니다.

하지만 반올림이 되지않아 100.66이라는 결과값이 나온다는 특징이 있습니다.

 

2. String.format()

int num = 302;
double divide = num / 3.0;
String divide2 = String.format("%.2f", divide);
System.out.println(divide2);

String.format을 이용한 소수점 반올림입니다. 결과값은 100.67이 나왔습니다.

"%.2f" 는 옆의 devide라는 변수의 소수점을 두자리반올림을 의미합니다.

 

3. Math.round()

int num = 302;
double divide = Math.round(num * 100 / 3.0)/100.0;

예를들어 두자리자리수라면 마지막에 100.0을, 세자리수라면 1000.0을 나누어주어야 원하는 소수점자리를 구할 수 있습니다.

결과값은 100.67입니다.

 

 

'코딩 > Java' 카테고리의 다른 글

Java Iterator  (0) 2020.07.16
Java 오늘 날짜 기준으로 일주일 출력하기  (0) 2020.07.12
Java ArrayList, LinkedList  (0) 2020.06.25
Java 초기화블럭  (0) 2020.06.23
Java 매개변수와 인자  (0) 2020.06.23
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기