[JAVA] Math 클래스

2019. 9. 30. 14:47 JAVA/Java

Math 클래스


Math 클래스는 흔히계산을 하는데 도움이 되는 많은 수의 기본적 수학 함수들을 제공한다.


Math 클래스는 Java 표준 클래스 라이브러리의 java.lang 패키지에 정의되어 있다.


Math 클래스의 모든 메소드들은 정적 메소드(static method)로 클래스의 객체를 생성하지 않고 그 메소드가 정의된 클래스 이름을 통해서 호출될 수 있다.



* Math 클래스의 메소드


static int abs(int num) 

 num의 절대 값을 반환한다. 

static double acos(double num) 

 num의 arc cosine을 반환한다. 

static double asin(double num) 

 num의 arc sine을 반환한다. 

static double atan(double num) 

 num의 arc tangent를 반환한다. 

static double cos(double num) 

 num의 cosine을 반환한다. 

static double sin(double num) 

 num의 sine을 반환한다. 

static double tan(double tan) 

 num의 tangent를 반환한다. 

static double ceil(double num) 

 num의 올림 값(ceiling)을 반환한다. 

static double floor(double num) 

 num의 내림 값을 반환한다. 

static double exp(double power)

 지정된 power만큼 승 된 값을 반환한다. 

static double pow(double num, double power)

 num을 power 만큼 누승한 값을 반환한다.

static double random() 

 0.0(포함)과 0.1(미포함) 사이의 난수를 반환한다. 

static double sqrt(double num)

 num의 제곱근을 반환한다. num은 양수이어야 한다. 



Math 클래스의 메소드들은 필요에 따라 수식 내에서 사용될 수 있는 값을 반환한다. 


value = Math.abs(total) + Math.pow(count, 4);


다음 문장은 total에 저장된 수의 절대값을 계산하고 그 값을 count 값의 4승에 더하여 그 결과를 변수 value에 저장한다.



아래에서  이차방정식에 근의공식을 사용하여 x를 구하는 계산을 해보자.


근의 공식 :

 


 

import java.util.Scanner;


public class mathtest {

    public static void main(String[] args) {
       
        int a, b, c;
        double discriminant, root1, root2;
       
        // 근의 공식을 이용한 ax제곱 + bx + c 의 x 값을 구하기 위해
        // a, b, c 의 값을 각각 받는다.
        Scanner scan = new Scanner(System.in);
       
        // ax제곱의  a 값을 받는다.
        System.out.print("Enter the coefficient of x squared: ");   
        a = scan.nextInt();
       
        // bx 의 b의 값을 받는다.
        System.out.print("Enter the coefficient of x: " );
        b = scan.nextInt();
       
        // c 값을 받는다.
        System.out.print("Enter the constant: " );
        c = scan.nextInt();
       
        // 근의 공식에 적용
        discriminant = Math.pow(b, 2) - (4 * a * c);
        root1 = ((-1 * b) + Math.sqrt(discriminant)) / (2*a);
        root2 = ((-1 * b) - Math.sqrt(discriminant)) / (2*a);
       
        // 출력
        System.out.println("Root #1: " + root1);
        System.out.println("Root #2: " + root2);
    }

}


* 결과 화면 



// 근의 공식에 적용

discriminant = Math.pow(b, 2) - (4 * a * c);
root1 = ((-1 * b) + Math.sqrt(discriminant)) / (2*a);

root2 = ((-1 * b) - Math.sqrt(discriminant)) / (2*a);


Math.pow(b,2)  : b에 제곱

Math.sqrt(discriminant) : discriminant 에 제곱근(루트)를 한다.


* discriminant가 음수일 경우 유효한 값이 아니기 때문에 NAN 결과값으로 발생한다.




출처: https://hyeonstorage.tistory.com/161?category=557602 [개발이 하고 싶어요]