ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • java.lang.Math & StrictMath Class
    Java 2020. 1. 7. 20:25
    반응형

    java.lang.Math

    수학 계산을 하는 클래스

    java.lang.Math vs java.lang.StrictMath

    Math

    JDK 1.0 ~

    대부분 StrictMath 클래스의 메서드를 선언하게 되어 있음

    StrictMath

    JDK 1.3 ~

    어떤 OS나 어떤 시스템 아키텍쳐에서 수행되든 간에 동일한 값을 리턴(Math와 차이가 나기도)

    대부분의 메서드는 자바 코드가 아닌 native로 선언

    Math Class의 상수

    /* 자연 로그 알고리즘에 기반하여 지수 e의 근사 값을 제공
     * JDK 1.8 기준 2.718281828459045
     */
    double E
    
    /* 원주율(파이) 값을 제공
     * JDK 1.8 기준 3.141592653589793
     */
    double PI

    Math Class의 Method

    • 절대값/부호 : abs, signum

    • 최대 최소 : max, min

    • 올림/버림 : ceil, floor, round, rint

    • 제곱/제곱근 : pow, scalb, sqrt, cbrt, hypot

    • 삼각 함수 : toRadians, toDegrees, sin, cos, tan, asin, acos, atan, atan2, sinh, cosh, tanh

    • 로그 : exp, getExponent, expm1, log, log1p, log10

    • 난수 : random

    • 소수 : ulp, nextAfter, nextUp, copySign

    • 기타 : IEEEremainder

    절대값/부호

    // 절대값
    int abs(int)
    long abs(long)
    float abs(float)
    double abs(double)
    
    // 부호 - 양수는 1.0, 음수는 -1.0, 0은 0
    float signum(float)
    double signum(double)

    최대/최소

    // 작은 값
    int min(int, int)
    long min(long, long)
    float min(float, float)
    double min(double, double)
    
    // 큰 값
    int max(int, int)
    long max(long, long)
    float max(float, float)
    double max(double, double)

    올림/버림

    // 반올림
    int round(float)
    long round(double)
    double rint(double)
    
    // 올림
    double ceil(double)
    
    // 버림
    double floor(double)

    제곱/제곱근

    // 제곱근
    double sqrt(double)
    
    // 세제곱근
    double cbrt(double)
    
    // 첫 번째 매개변수의 두 번째 매개변수만큼의 제곱
    double pow(double, double)
    
    // 첫 번째 매개변수 * (2의 두번째 매개변수만큼의 제곱)
    float scalb(float, int)
    double scalb(double, int)
    
    // (첫 번째 매개변수의 제곱 + 두 번째 매개변수의 제곱)의 제곱근
    double hypot(double, double)

    삼각 함수

    최대한의 근사치로 나타남(딱 떨어지는 값은 아님)

    // 각도를 래디안 값으로
    double toRadians(double)
    
    // 래디안 값을 각도로
    double toDegrees(double)
    
    // 사인 값
    double sin(double)
    
    // 코사인 값
    double cos(double)
    
    // 탄젠트 값
    double tan(double)

    랜덤

    java.util.Random이라는 클래스를 사용하는 것이 훨씬 효과적임

    반응형

    'Java' 카테고리의 다른 글

    Collection  (0) 2020.01.07
    Generic  (0) 2020.01.07
    java.lang.System Class  (0) 2020.01.07
    java.lang 기본 자료형 타입 클래스  (0) 2020.01.07
    java.lang 패키지 구조  (0) 2020.01.07

    댓글

Designed by Tistory.