The Java Math class has many methods that allows you to perform mathematical tasks on numbers.
Java의 Math 클래스에는 수학적 작업을 수행할 수 있는 많은 메서드가 있다.
1. Math.round()로 반올림하기 - 자바기초 3장
- 수를 반올림하고 싶을 때는 Math클래스의 round() 메서드를 사용하면 된다.
- round() 메서드는 소수점 첫째 자리에서 반올림한 결과를 정수로 반환한다.
- 예시
long result = Math.round(4.52); // result에 5가 저장된다.
- 응용
소수점 첫째 자리가 아닌 다른 자리에서 반올림을 하려면 10의 n제곱으로 적절히 곱하고 나누어야 한다.
class Ex3_11 {
public static void main(String args[]) {
double pi = 3.141592;
double shortPi = Math.round(pi*1000) / 1000.0;
System.out.println(shortPi); // 3.142
}
}
=> 예제의 결과를 따라가 보자 // pi의 값을 소수점 넷째 자리인 5에서 반올림해서 3.142가 나오게 하기
Math. round(pi*1000) / 1000.0
-> Math. round(3.141592*1000) / 1000.0
-> Math. round(3141.592) / 1000.0
-> 3142 / 1000.0
-> 3.142
1000.0으로 나누는 이유
1000.0으로 나누는 이유 => 소수점이 결과로 나오기 위해서
int / int -> 결과값 int
ex) 3142 / 1000 -> 3
타입을 맞춰줘야 한다
int / double -> 형변환 double / double -> double
3142 / 1000.0 -> 3142.0 / 1000.0 -> 3.142
2. Math.random() 임의의 정수(or 상수) 만들기 - 자바기초 4장
- 임의의 수(난수)를 얻고 싶을 때는 Math클래스의 random() 메서드를 사용하면 된다.
- random() 메서드는 0.0과 1.0 사이의 범위에 속하는 하나의 double값을 반환한다. (0.0은 포함되고 1.0은 포함되지 않는다.)
- 실행 때마다 실행결과가 달라진다.
0.0 <= Math.random() < 1.0
- 예시
1~3 (1,2,3) 사이의 정수를 구하려고 할 때 난수를 구하는 식
- 각 변에 3을 곱한다
0.0 * 3 <= Math.random() * 3 < 1.0 * 3
-> 0.0 <= Math.random() * 3 < 3.0 - 각 변을 int형으로 변환한다.
(int)0.0 <= (int)(Math.random() * 3) < (int)3.0
-> 0 <= (int)(Math.random() * 3) < 3 - 각 변에 1을 더한다.
0 + 1 <= (int)(Math.random() * 3) + 1 < 3 + 1
-> 1 <= (int)(Math.random() * 3) + 1 < 4
-> 1과 3 사이의 정수 중 하나를 랜덤으로 가져올 수 있다. (1은 포함되고 4는 포함되지 않는다.)
- 응용
1~6 사이의 정수를 랜덤 하게 다섯 개의 값이 나오게 하기
1. 1~6 사이의 정수는 1,2,3,4,5,6 / 6개의 정수가 필요하니깐 Math.random()에 6을 곱한다.
(만약 1~100 사이의 정수면 100개 정수니깐 100을 곱하면 된다.)
2. int로 형변환은 한다. (정수를 만들기 위해서)
3. 더하기 1을 해서 1(포함)부터 7(포함되지 않음)까지의 정수 사이의 랜덤 숫자가 나올 수 있게 한다.
4. 다섯 개의 랜덤값이 필요하니 for문, 반복문을 5번 돌린다.
int num = 0;
// 괄호{} 안의 내용을 5번 반복한다.
for (int i = 1; i <= 5; i++) {
num = (int) (Math.random() * 6) +1;
System.out.println(num);
}
=> 결과값
6
1
4
3
5
참고
자바의 정석 기초 유튜브 - Math.round()
https://www.youtube.com/watch?v=hnzwWNG_bdA&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=28
자바의 정석 기초 유튜브 - Math.random()
https://www.youtube.com/watch?v=OPXM_2lagLA&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=35
https://www.w3schools.com/java/java_ref_math.asp
Java Math Reference
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
www.w3schools.com
'JAVA' 카테고리의 다른 글
[남궁성 자바기초] 5장 커맨드라인을 통해 입력받기 (intellij 사용 시) (0) | 2023.01.14 |
---|---|
[남궁성 자바기초] 5장 intellij에서 커맨드라인을 통해 입력받기 (0) | 2023.01.14 |
참조형 타입 (reference type) (0) | 2023.01.08 |
[남궁성 자바기초] 1-8, 1-9강 정리 (0) | 2023.01.06 |
[남궁성 자바기초] 1-1~1-7강 정리 (0) | 2023.01.04 |