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 |
최근댓글