Backend/JAVA_Basic

06. JAVA, Math 클래스 (난수, 올림, 버림, 반올림 등 )

개발개발빈이 2022. 5. 28. 12:42

○ Math (수학 관련 클래스)

    - 수학에서 자주 사용하는 상수들과 함수들을 미리 구현해 놓은 클래스

    - static method이므로 객체를 생성하지 않고 바로 사용가능

    - 사용법 : Math.클래스필드 / Math.클래스 메소드()

 

Math 클래스 필드

    - 클래스 필드(상수) : Math.E / Math.PI

System.out.println(Math.E);   //2.718281828459045
System.out.println(Math.PI);  //3.141592653589793

 

 Math 클래스 메소드(함수)

    ① 절댓값 : Math.abs()

System.out.println(Math.abs(3));    //3
System.out.println(Math.abs(-3));   //3
System.out.println(Math.abs(2.4));  //2.4
System.out.println(Math.abs(-2.4)); //2.4

 

    ② 올림, 버림, 반올림 : Math.ceil() / Math.floor() / Math.round()

System.out.println(Math.ceil(1.3));    // 2.0 소수점 올림
System.out.println(Math.floor(2.7));   // 2.0 소수점 버림
System.out.println(Math.round(3.8));   // 4   반올림

 

    ③ 최대값, 최소값 : Math.max() / Math.min()

System.out.println(Math.max(3, 5));      //5
System.out.println(Math.max(1.2, 3.4));  //3.4
System.out.println(Math.min(6, 7));      //7

    ④ 난수 : Math.random()

        - 무작위로 0.0이상 1.0미만의 값 중 하나가 발생

System.out.println(Math.random()); //0.0 <= r < 1.0 인 random값 발생

System.out.println((int)(Math.random()*6)+1);  //1~6
System.out.println((int)(Math.random()*45)+1); //1~45

 

● Practice 연습문제

    Q1) 1년이 몇 초인지 구하기 (실제 1년은 365일 아닌 대략 365.2422일)

    Q2) Q1의 결과를 활용하여 1년이 몇일 몇시간 몇분 몇초인지 출력

//Q1
double year = 365.2422;
int total = (int)(year*86400);	// 31556926

//Q2
int day = total/86400;
System.out.printf("%d일 ", day);

total = total%86400;
int our = total/3600;
System.out.printf("%d시간 ", our);

total = total%3600;
int minute = total/60;
System.out.printf("%d분 ", minute);

int second = total%60;
System.out.printf("%d초", second);