JAVA - 반올림, 랜덤 뽑기

갓김치·2020년 7월 24일
0

참고

책 P.43~44
Operation_3.java

반올림

소수점 첫째자리에서 반올림 -> 정수

int a = 3.4;
// 3.4 + 0.5 = 3.9 -> 소수점 버리면 -> 3

int b = 3.6;
// 3.6 + 0.5 = 4.1 -> 소수점 버리면 -> 4

System.out.println((int)(a+0.5)); //3
//소수점 버리는 것 -> (int)

소수점 n째자리에서 반올림 -> 실수

float PI = 3. 141592F

//Q. 소수점 4번째 자리에서 반올림한 값을 result에 저장하라
//1) 취득하고자 하는 자리가 정수가 될 수 있게 10의 배수를 곱해준다.
PI*1000 = 3141.592
//2) 0.5를 더해준다.
3141.592 + 0.5 = 3142.092
//3) 소수점 밑을 버릴 수 있도록 int로 캐스팅
(int)(3142.092) = 3142
//4) 곱해준 값만큼 나눠 원상복귀, 이때 실수가 되도록 F를 붙여준다 
3142 / 1000F = 3.142F

//이 과정을 모두 합치면
float result(int)(PI*1000 + 0.5) / 1000F;

랜덤 (임의의 정수 뽑기)

  • Math 클래스의 random()메서드 사용: Math.random()
  • 0 이상 1 미만의 double타입 실수 값

주사위 구하기

// Q. 주사위 구하기
//    주사위 범위:   1 < 주사위 < 6
// Math.random(0): 0 <= Math.random() < 1

// 0 *6 <= Math.random()*6 < 1*6
// 0 <= Math.random()*6 < 6
// 1 <= Math.random()*6+1 < 7  --> double타입이기때문에 형변환
// 1 <= (int)(Math.random()*6+1) < 7

int random = (int)(Math.random()*6+1);

문제 2-13 (p.44)

class Qu2_13{
	public static void main(String[] args){
    	//1. 변수 x 선언, 0이상 100미만 사이의 임의 정수 값으로 초기화
        //0 <= Math.random() < 1
        //0*100 <= Math.random()*100 < 100
        // Math.random()은 더블 타입 실수이기때문에 int로 형변환
        int x = (int)(Math.random()*100);
        
        //2. x에 저장된 값을 출력
        System.out.println(x); 
        
        //3. 변수 x2 선언, 43초과 375미만 사이의 임의의 정수 값으로 초기화.
        //43 < 정수 x2 < 375 -> 44부터는 포함
        //44 <= 정수 x2 < 375
        //0 <= Math.random() < 1
        //0*331 <= Math.random()*331 < 1*331
        //0 + 44 <= Math.random()*331+44 < 331+44
        // 44 <= Math.random()*331+44 < 375
        // Math.random()은 더블 타입 실수이기때문에 int로 형변환
        int x2 = (int)(Math.random()*331+44);
        
        //4. x2에 저장된 값을 출력하여라.
        System.out.println(x2);
profile
갈 길이 멀다

0개의 댓글