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);