프로그래밍/JAVA

자바 random 함수와 round 함수 이해

Baesj 2021. 7. 27. 19:46

Math.random()

 

자바에서 Math.random() 함수를 사용하면 랜덤한 값을 사용할 수 있다.

 

Math.random()은 0.0 <= Math.random() < 1.0 의 값을 가지고 있다.

0.0 부터 10.0 미만의 사이 값을 반환 받을려면 10을 곱하면 된다.

0.0 <= Math.random() * 10 < 10.0

 

여기서 특정 범위 10.0 부터 20.0 미만의 값을 반환받으려면 10을 더하면 된다.

10.0 <= Math.random() * 10 + 10 < 20

 

0.0 <= Math.random() < 1.0 을 기준으로 반환 받을 값을 생각하면 된다.

 

Math.round()

 

자바에서 Math.round() 함수를 사용하면 반올림한 값을 사용할 수 있다.

Math.round() 함수는 소수점 첫째자리에서 반올림을 한다.

 

123.4567 값에서 소수 둘째 자리에서 반올림을 하고 싶으면

우선 소수 둘째 자리가 소수 첫째 자리로 옮겨 준다

123.4567 * 10

이 값을 Math.round()에 넣어준다

Math.round(123.4567 * 10) = 1235.0 가 되므로 다시 나누어서 값을 맞춘다

Math.round(123.4567* 10) / 10.0

이때 10.0 이라고 안쓰고 10 이라고 쓰면 정수가 되므로 10.0을 사용해야 한다

 

public class ExRandomRound {
    public static void main(String[] args) {
        //0.0 <= Math.random() < 1.0
        //0.0 <= Math.random() * 10 < 10.0
        double v = Math.random() * 10; //0.0 부터 10.0 미만의 랜덤한 수를 받을 수 있다
        System.out.println("v = " + v);

        //10.0 <= Math.random() * 10 + 10 < 20.0
        double v1 = Math.random() * 10 + 10;
        System.out.println("v1 = " + v1);

        //정수로 변환
        int v2 = (int)(Math.random() * 10 + 10);
        System.out.println("v2 = " + v2);

        //Math.round() 소수점 첫째자리에서 반올림한다
        double a = 123.4567;
        long round = Math.round(a);
        System.out.println("round = " + round);

        //소수점 둘째자리에서 반올림을 하려면 그 숫자를 소수점 첫째자리로 옮기면 된다
        double l = Math.round(a * 10) / 10.0; //첫째자리로 옮기로 다시 나눠서 내려준다 나눌 때 .0을 사용하지 않으면 정수가 되므로 .0을 붙여준다
        System.out.println("l = " + l);
        
    }
}

 

 

 

 

 

'프로그래밍 > JAVA' 카테고리의 다른 글

ArrayList와 LinkedList  (0) 2021.08.06
자바 replaceAll 정규식 특수문자 제거  (0) 2021.08.01
Date와 Time  (0) 2021.07.25
의존성과 의존성 주입(DI)  (0) 2021.07.20
1차 배열 2차 배열 sort(오름차순, 내림차순)  (0) 2021.07.18