Language/Java

[Java] 자바 API 클래스 - Math 클래스

재은초 2024. 4. 11. 17:44
반응형

java.lang 패키지

  • java.lang 패키지는 자바에서 가장 기본적인 동작을 수행하는 클래스들의 집합이다. 따라서 자바에서는 java.lang 패키지의 클래스들은 import 문을 사용하지 않아도 클래스 이름만으로 바로 사용할 수 있다.

 

java.lang.Math 클래스

  • Math 클래스는 수학에서 자주 사용하는 상수들과 함수들을 미리 구현해 놓은 클래스다.
  • Math 클래스의 모든 메소드는 클래스 메소드(static method)이므로, 객체를 생성하지 않고도 바로 사용할 수 있다.
  • Math 클래스는 java.lang 패키지에 포함되어 제공됩니다.

Math 클래스 필드

  • Math.E : 오일러의 수라 불리며, 자연로그(natural logarithms)의 밑(base) 값으로 약 2.718을 의미한다.
  • Math.PI : 원의 원주를 지름으로 나눈 비율(원주율) 값으로 약 3.14159를 의미한다.

random() 메소드

  • random() 메소드는 0.0 이상 1.0 미만의 범위에서 임의의 double형 값을 하나 생성하여 반환한다.
  • random() 메소드는 내부적으로 java.util 패키지의 Random 클래스를 사용한 의사 난수 발생기(pseudorandom-number generator)를 사용하여 임의의 수를 생성한다.
  • Math 클래스의 random() 메소드뿐만 아니라 java.util 패키지에 포함된 Random 클래스의 nextInt() 메소드를 사용해도 난수를 생성할 수 있다.
System.out.println((int)(Math.random() * 100));     // 0 ~ 99
System.out.println((int)(Math.random() * 6));       // 0 ~ 5
System.out.println(((int)(Math.random() * 6) + 1)); // 1 ~ 6
System.out.println(((int)(Math.random() * 6) + 3)); // 3 ~ 8

Random ran = new Random();
System.out.println(ran.nextInt(100));           // 0 ~ 99

abs() 메소드

  • abs() 메소드는 전달된 값이 음수이면 그 값의 절댓값을 반환하며, 전달된 값이 양수이면 전달된 값을 그대로 반환한다.
System.out.println(Math.abs(10));    // 10
System.out.println(Math.abs(-10));   // 10
System.out.println(Math.abs(-3.14)); // 3.14

floor() 메소드, ceil() 메소드와 round() 메소드

  • floor() 메소드는 인수로 전달받은 값과 같거나 작은 수 중에서 가장 큰 정수를 반환한다.
  • ceil() 메소드는 반대로 인수로 전달받은 값과 같거나 큰 수 중에서 가장 작은 정수를 반환한다.
  • round() 메소드는 전달받은 실수를 소수점 첫째 자리에서 반올림한 정수를 반환한다.
System.out.println(Math.ceil(10.0));      // 10.0
System.out.println(Math.ceil(10.1));      // 11.0
System.out.println(Math.ceil(10.000001)); // 11.0

System.out.println(Math.floor(10.0));     // 10.0
System.out.println(Math.floor(10.9));     // 10.0

System.out.println(Math.round(10.0));     // 10
System.out.println(Math.round(10.4));     // 10
System.out.println(Math.round(10.5));     // 11

max() 메소드와 min() 메소드

  • max() 메소드는 전달된 두 값을 비교하여 그중에서 큰 값을 반환하며, min() 메소드는 그중에서 작은 값을 반환한다.
System.out.println(Math.max(3.14, 3.14159)); // 3.14159
System.out.println(Math.min(3.14, 3.14159)); // 3.14
System.out.println(Math.max(-10, -11));      // -10
System.out.println(Math.min(-10, -11));      // -11

pow() 메소드와 sqrt() 메소드

  • pow() 메소드는 전달된 두 개의 double형 값을 가지고 제곱 연산을 수행한다.
  • sqrt() 메소드는 전달된 double형 값의 제곱근 값을 반환한다.
System.out.println((int)Math.pow(5, 2)); // 25
System.out.println((int)Math.sqrt(25));  // 5

sin() 메소드, cos() 메소드와 tan() 메소드

  • 자바에서는 많은 삼각 함수를 제공하는데, sin() 메소드는 전달된 double형 값의 사인값을, cos() 메소드는 코사인값을, tan() 메소드는 탄제트값을 반환한다.
  • 자바의 삼각 함수에 관한 메소드는 정확한 값을 나타내지 못한다. 이것은 컴퓨터가 실수를 나타내는 데 사용하는 부동 소수점 방식의 한계로 모든 언어에서 공통으로 발생하는 문제다.
System.out.println(Math.sin(Math.toRadians(30)));       // 0.49999999999999994
System.out.println(Math.sin(Math.PI / 6));              // 0.49999999999999994

System.out.println(Math.tan(Math.toRadians(45)));       // 0.9999999999999999
System.out.println(Math.tan(Math.PI / 4));              // 0.9999999999999999

System.out.println(Math.cos(Math.toRadians(60)));       // 0.5000000000000001
System.out.println(Math.cos(Math.PI / 3));              // 0.5000000000000001

Math 메소드들

 

Reference

반응형