▶Math.round()
-. ()안에 있는 소수점 첫자리에서 반올림한다.
-. 양수, 음수 모두 반올림 가능하다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public class Practice {
public static void main(String[] args) {
Math.round( 20.49); // 20
Math.round( 20.5 ); // 21
Math.round( 42 ); // 42
Math.round(-20.5 ); // -20
Math.round(-20.51); // -21
}
}
|
cs |
-. 1000의자리&실수 예시
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
public class Practice {
public static void main(String[] args) {
int num = 1556
System.out.println("일의 자리에서 반올림하기: " + (int)Math.round(num/10.0) * 10); // 1560
System.out.println("십의 자리에서 반올림하기: " + (int)Math.round(num/100.0) * 100); // 1600
System.out.println("백의 자리에서 반올림하기: " + (int)Math.round(num/1000.0) * 1000); // 2000
System.out.println("천의 자리에서 반올림하기: " + (int)Math.round(num/10000.0) * 10000); // 0
double pie = 3.14159265;
System.out.println("기존값: " + pie); // 3.14159265
System.out.println("소수점 첫째자리까지 반올림: " + Math.round(pie*10)/10.0); // 3.1
System.out.println("소수점 둘째자리까지 반올림: " + Math.round(pie*100)/100.0); // 3.14
System.out.println("소수점 셋째자리까지 반올림: " + Math.round(pie*1000)/1000.00);// 3.142
}
}
|
cs |
-. 1556에 10.0을 나누면 155.6이다. Math.round는 소숫점 첫자리에서 반올림을 함으로 156이 되고 거기에 10을 곱해 1560이 되어 일의 자리에서 반올림을 한다.
-. 소수를 반올림하여 정수로 만들어주는 함수로 앞에 (int)를 달아준다.
▶String.format()
-. ()안에 있는 소숫점 N번째 자리 수 까지 출력하고 N+1 자리수를 기준으로 반올림한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
public class Practice {
public static void main(String[] args) {
double pie = 3.14159265;
System.out.println(String.format("%.2f", pie)); // 3.14
System.out.println(String.format("%.3f", pie)); // 3.142
}
}
|
cs |
▶Math.round() vs String.format()
double pi = 3.1415926359;
-. String.format("%.6f", num)); 은 소수점 7번째 자리를 반올림하여 소수점 6번째 자리까지만 표현하라는 의미입니 다. 위의 경우, 3.141593 (7번째자리인 6에서 반올림됨)이 나온다.
-. Math.round()는 실수를 정수로 반올림하여 만들어준다. 그래서 단순히 Math.round(pi);만 해버린다면 3만 출력이 될 것이다. N번째를 원한다면 pi 에 N00을 곱한(실수기준) 값을 round로 반올림해주고 거기에 100을 다시 나누어 N번째 자리까지 출력하게 만들 어준다. String.format에 비해 많이 복잡한 방법
>>String은 문자열, Math는 double의 형식이다. 이 값을 문자열로 반환이 필요하면 String.format() 정수나 실수로 반환을 원하면 Math를 사용하는 것이 권고된다.
>>소수점 및 소수점 표시 목적으로만 반올림 해야하는 경우 혹은 실제 숫자를 반올림 해야할 경우(예:추가 계산에 사용) 같은 단순 반올림 같은 경우엔 Stirng.format()을 사용하는 것이 더 간단하다.
▶String.format() vs Printf
System.out.println (String.format("%.2f", pie)); // String.format
System.out.printf("%.4d",pie); // Printf
-. 모든것이 다 동일하지만 출력 여부에 따라 차이가 생긴다: String.format()은 출력될 수 없고 printf는 바로 출력된다
-. String.format()은 반드시 System.out.print 또는 System.out.println을 이용해야한다
만약 Syso가 없다면 String.format()은 출력되지않는다.
-. Printf()는 ()안에 식을 입력하면 콘솔에 값이 바로 출력된다.
'국비필기노트 > Java' 카테고리의 다른 글
자바(java)_메서드 (0) | 2022.03.11 |
---|---|
java - 2차 배열 (0) | 2022.03.11 |
Java 오류 (0) | 2022.03.04 |
JAVA 설치 방법 (0) | 2022.03.03 |
JOptionPane (0) | 2022.02.28 |