본문 바로가기
Java

Math클래스의 round와 random 메소드

by 이쟝 2021. 12. 29.

반올림 - Math.round( )

실수를 소수점 첫째 자리에서 반올림한 정수를 반환

long result = Math.round(4.52);  //result5가 저장된다.

 

 

3142(int) / 1000(int) -> 3(int)

3142(int) / 1000.0(double) -> 3142.0(double) / 1000.0(double) -> 3.142(double)

 

double pi = 3.141592; // 3.141 얻으려면?

      

System.out.println(pi*1000);

System.out.println((int)(pi*1000));

System.out.println((int)(pi*1000)/1000.0);


임의의 정수 만들기 - Math.random( )

0.01.0 사이의 임의의 double값을 반환 ( 0.0 <= Math.random( ) < 1.0 ) -> 0.0 ~ 0.9999…

ex) 범위를 1~3 정수 사이의 값 구하기

1) 각 변에 3 곱하기

0.0 * 3 <= Math.random( ) * 3 < 1.0 * 3

0.0 <= Math.random( ) * 3 < 3.0  -> 0.0 ~ 2.999

 

2) 각 변을 int형으로 변환

(int) 0.0 <= (int)(Math.random( ) * 3) < (int) 3.0

0 <= (int)(Math.random( ) * 3) < 3  -> 0 ~ 2

 

3) 각 변에 1을 더하기

0 + 1 <= (int)(Math.random( ) * 3) +1 < 3+1 

1 <= (int)(Math.random( ) * 3 + 1 < 4   -> 1 ~ 3

 

-> 원하는 값의 개수

원하는 값의 개수! (곱하기) -> (Math.random( ) * n )

최솟값(더하기)

 

// 1~10사이의 난수를 5개 출력
for(int i = 1; i <= 5; i++) {
	System.out.println(Math.random()); //0.0<=x<1.0
	System.out.println((Math.random()*10)); //0.0<=x<10.0 
	System.out.println((int)(Math.random()*10)); //0<=x<10
	System.out.println((int)(Math.random()*10)+1); //1<=x<10

// -5~5사이의 난수 5개 출력(-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5 = 11개)
for(int i = 0; i <= 4; i++) {
	System.out.println((int)(Math.random()*11)); // 0<x<11 
	System.out.println((int)(Maht.random()*11)-5); // -5<=x<6 -5~5
}

 

 

 

'Java' 카테고리의 다른 글

BufferedReader, BufferedWriter, StringTokenizer  (0) 2022.01.17
재귀호출( recursive call)  (0) 2022.01.13
ChoiceFormat과 MessageFormat  (0) 2022.01.08
Java.time 패키지  (0) 2022.01.01