728x90
Q. 3번째 자리에서 반올림 하고싶다!
1. round함수
public static long round(double a)
round는 소수점 첫 째 자리에서 반올림하여 정수값을 반환해준다.
3번째 자리에서 반올림 하고싶다면
1) 원하는 값에 100을 곱한 뒤
2) 그 값을 round함수에 넣어주고
3) 거기에 100을 나눠주면 된다. 이 때 반환값이 long 정수라는 것에 주의하여 형변환 잘해주자.
2. String.format("%.2f", num) 하고 float으로 형변환
%.2f를 이용해주면 소수점 2번째자리까지 표현된 String값이 나온다. (3번째 자리에서 반올림됨)
이걸 float값으로 받고싶다면 Float.parseFloat() 함수에 집어넣어주면 된다.
3. 곱하고 0.5더해서 int형변환으로 자르기
1) 100 곱하고
2) 거기 0.5를 더한 뒤(반올림위한거)
3) 그 값을 int로 강제형변환, 소수점 아래를 싹 잘라준다.
4) 거기에 100을 다시 나눠준다. int값이니까 형변환에 유의해야한다.
class Student {
int kor;
int eng;
int math;
int getTotal() { return kor + eng + math; }
float getAverage() {
float av = Math.round((double)getTotal()/3*10)/10f;
float temp = Float.parseFloat(String.format("%.1f", getTotal()/3f));
int tmp = (int)(getTotal()/3f*10+0.5f);
float av = tmp/10f;
return av;
}
}
getAverage()함수를 보면 순서대로 저렇게 사용하면 됨.
728x90
'프로그래밍 언어 > Java' 카테고리의 다른 글
[JAVA] 이진탐색 lowerbound, upperbound 정리 (0) | 2023.10.01 |
---|---|
Arrays.binarySearch 메서드 알아보기 (2) | 2023.09.30 |
[JAVA] char형을 int형으로 변환(char to int) (1) | 2023.09.26 |
[Java] java.lang.IllegalStateException: Module entity with name: [] should be available 자바, 인텔리제이 오류 (0) | 2023.08.05 |
IntelliJ 오류메시지 - error: invalid source release: 17 (0) | 2022.12.29 |