코딩 스쿨 Java

언어선택 : HTMLCSSJAVAJAVASCRIPTMYSQLSQL PHP

Java Math Methods

자바에서의 수학 메서드 (Java Math Methods)

자바의 Math 클래스는 수학 연산을 위한 다양한 정적(static) 메서드들을 제공합니다. 이 클래스는 기본적인 산술 연산에서부터 삼각 함수, 지수 함수, 로그 함수와 같은 고급 수학 연산까지 다양한 기능을 포함하고 있습니다. Math 클래스는 java.lang 패키지에 포함되어 있어, 별도의 import 없이 바로 사용할 수 있습니다.

주요 Math 클래스 메서드

1. 절댓값 구하기: abs()

abs() 메서드는 주어진 숫자의 **절댓값(Absolute Value)**을 반환합니다. 이 메서드는 정수, 실수 등의 데이터 타입에 대해 사용할 수 있습니다.

public class Main {
    public static void main(String[] args) {
        int intVal = -10;
        double doubleVal = -3.14;

        System.out.println("정수의 절댓값: " + Math.abs(intVal));  // 출력: 10
        System.out.println("실수의 절댓값: " + Math.abs(doubleVal));  // 출력: 3.14
    }
}

2. 거듭제곱: pow()

pow() 메서드는 주어진 숫자의 **거듭제곱(Power)**을 계산합니다. 두 개의 매개변수를 받아, 첫 번째 값을 두 번째 값만큼 제곱한 결과를 반환합니다.

public class Main {
    public static void main(String[] args) {
        double base = 2.0;
        double exponent = 3.0;

        double result = Math.pow(base, exponent);
        System.out.println("2의 3제곱: " + result);  // 출력: 8.0
    }
}

3. 제곱근 구하기: sqrt()

sqrt() 메서드는 주어진 숫자의 **제곱근(Square Root)**을 반환합니다.

public class Main {
    public static void main(String[] args) {
        double number = 16.0;

        double squareRoot = Math.sqrt(number);
        System.out.println("16의 제곱근: " + squareRoot);  // 출력: 4.0
    }
}

4. 올림과 내림: ceil(), floor()

  • ceil(): 올림 연산. 소수점 이하가 있으면 무조건 큰 쪽으로 올림합니다.
  • floor(): 내림 연산. 소수점 이하가 있으면 작은 쪽으로 내림합니다.
public class Main {
    public static void main(String[] args) {
        double num = 7.34;

        System.out.println("올림: " + Math.ceil(num));   // 출력: 8.0
        System.out.println("내림: " + Math.floor(num));  // 출력: 7.0
    }
}

5. 반올림: round()

round() 메서드는 주어진 값을 가장 가까운 정수로 반올림합니다. 소수점 첫 번째 자리에서 0.5 이상이면 올림, 0.5 미만이면 내림을 수행합니다.

public class Main {
    public static void main(String[] args) {
        double num1 = 7.5;
        double num2 = 7.4;

        System.out.println("7.5의 반올림: " + Math.round(num1));  // 출력: 8
        System.out.println("7.4의 반올림: " + Math.round(num2));  // 출력: 7
    }
}

6. 최대값과 최소값: max(), min()

  • max(): 두 숫자 중 더 큰 값을 반환합니다.
  • min(): 두 숫자 중 더 작은 값을 반환합니다.
public class Main {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        System.out.println("최대값: " + Math.max(a, b));  // 출력: 20
        System.out.println("최소값: " + Math.min(a, b));  // 출력: 10
    }
}

7. 난수 생성: random()

random() 메서드는 0.0 이상 1.0 미만의 **난수(double)**를 반환합니다. 특정 범위의 난수를 생성하려면, 난수에 범위 값을 곱하고 형변환해야 합니다.

public class Main {
    public static void main(String[] args) {
        // 0.0 이상 1.0 미만의 난수 생성
        double randomValue = Math.random();
        System.out.println("랜덤 값: " + randomValue);

        // 1부터 100까지의 정수 난수 생성
        int randomInt = (int) (Math.random() * 100) + 1;
        System.out.println("랜덤 정수 (1~100): " + randomInt);
    }
}

8. 로그 함수: log(), log10()

  • log(): 자연 로그(밑이 e) 값을 반환합니다.
  • log10(): 밑이 10인 로그 값을 반환합니다.
public class Main {
    public static void main(String[] args) {
        double num = 100;

        System.out.println("자연 로그 (ln 100): " + Math.log(num));    // 출력: 약 4.605
        System.out.println("밑이 10인 로그 (log10 100): " + Math.log10(num));  // 출력: 2.0
    }
}

9. 삼각 함수: sin(), cos(), tan()

Math 클래스는 삼각함수를 제공하며, 라디안 값을 인자로 받습니다.

public class Main {
    public static void main(String[] args) {
        double angle = Math.PI / 2;  // 90도(라디안 값)

        System.out.println("sin(90도): " + Math.sin(angle));   // 출력: 1.0
        System.out.println("cos(90도): " + Math.cos(angle));   // 출력: 거의 0.0
        System.out.println("tan(90도): " + Math.tan(angle));   // 출력: 거의 무한대
    }
}

10. 절대값, 제곱근, 거듭제곱 예시

public class Main {
    public static void main(String[] args) {
        // 절대값
        int absVal = Math.abs(-100);
        System.out.println("절대값: " + absVal);  // 출력: 100

        // 제곱근
        double sqrtVal = Math.sqrt(64);
        System.out.println("제곱근: " + sqrtVal);  // 출력: 8.0

        // 거듭제곱
        double powVal = Math.pow(2, 3);  // 2의 3제곱
        System.out.println("거듭제곱: " + powVal);  // 출력: 8.0
    }
}

11. hypot(): 직각삼각형의 빗변 길이 계산

hypot() 메서드는 주어진 두 변의 길이를 사용하여 직각삼각형의 빗변 길이를 계산합니다. 이는 피타고라스 정리 \( c = \sqrt{a^2 + b^2} \) 를 기반으로 합니다.

image.png

public class Main {
    public static void main(String[] args) {
        double sideA = 3.0;
        double sideB = 4.0;

        // 직각삼각형의 빗변 계산
        double hypotenuse = Math.hypot(sideA, sideB);
        System.out.println("빗변의 길이: " + hypotenuse);  // 출력: 5.0
    }
}

12. 각도 변환: toRadians(), toDegrees()

  • toRadians(): 각도를 라디안으로 변환합니다.
  • toDegrees(): 라디안을 각도로 변환합니다.
public class Main {
    public static void main(String[] args) {
        double degrees = 180.0;
        double radians = Math.toRadians(degrees);  // 각도를 라디안으로 변환
        System.out.println("180도의 라디안 값: " + radians);  // 출력: 3.141592653589793 (PI)

        double radianValue = Math.PI;
        double degreeValue = Math.toDegrees(radianValue);  // 라디안을 각도로 변환
        System.out.println("PI 라디안의 각도 값: " + degreeValue);  // 출력: 180.0
    }
}

요약

  • Math.abs(): 절댓값을 반환합니다

.

  • Math.pow(): 거듭제곱을 계산합니다.
  • Math.sqrt(): 제곱근을 구합니다.
  • Math.ceil(), Math.floor(): 올림/내림 연산을 수행합니다.
  • Math.round(): 반올림을 수행합니다.
  • Math.max(), Math.min(): 두 값 중 큰 값/작은 값을 반환합니다.
  • Math.random(): 0.0 이상 1.0 미만의 난수를 생성합니다.
  • Math.log(), Math.log10(): 로그 값을 계산합니다.
  • 삼각 함수: Math.sin(), Math.cos(), Math.tan() 등을 통해 삼각함수 계산이 가능합니다.

자바의 Math 클래스는 수학적인 연산을 쉽게 처리할 수 있도록 많은 메서드를 제공합니다. 이러한 메서드를 적절히 사용하면 복잡한 수학적 계산을 간편하게 수행할 수 있습니다.


copyright ⓒ 스타트코딩 all rights reserved.
이메일 : startcodingim@gamil.com