본문 바로가기
JAVA BASE/lang & util

06. [자바] Math클래스

by staticClass 2020. 12. 26.

Math클래스?

Math클래스는 이름에서 수학 냄새가 나듯이 수학계산에 유용한 메서드로 구성되어 있고
생성자의 접근 데어자가 private이기 때문에 다른 클래스에서 Math인스턴스를 생성할 수 없다.
모든 메서드가 static이며 인스턴스 변수가 하나도 없고 상수만 2개 존재하기 때문이다.

public static final double E  = 2.7182818284590452354;   // 자연로그의 밑
public static final double PI = 3.14159265358979323846;  // 원주율

StrictMath클래스

Math클래스는 성능을 최대로 뽑기 위해 JVM이 설치된 OS의 메서드를 호출해서 사용하는데
OS마다 반올림의 처리방법이 다를수 있다, 이 때문에 컴퓨터에 따라 처리결과가 다를 수 있다.
이를 해결하고자 성능은 어느정도 포기했지만 어떤 OS에서 실행되어도 같은 결과를
얻을 수 있게 만든것이 StrictMath클래스이다.

Math클래스의 메서드

메서드 / 설명 예 제 결 과
static double abs(double a)
static float abs(float f)
static int abs(int f)
static long abs(long f)
int i = Math.abs(-10);
double d = Math.abd(-10.0);
i = 10
d = 10.0
주어진 값의 정대값을 반환한다.
static double ecil(double a) double d = Math.ceil(10.1);
double d2 = Math.ceil(-10.1);
double d3 = Math.ceil(10.000015);
d = 11.0
d2 = 10.0
d3 = 11.0
주어진 값을 올림하여 반환한다.
static double floor(double a) double d = Math.floor(10.8);
double d2 = Math.floor(-10.8);
d = 10.0
d2 = -11.0
주어진 값을 버림하여 반환한다.
static double max(double a, double b)
static float max(float a, float b)
static int max(int a, int b)
static long max(long a, long b)
double d = Math.max(9.5, 9.50001);
int i = Math.max(0, -1);
d = 9.50001
i = 0
주어진 두 값을 비교하여 큰 쪽을 반환한다.
static double min(double a, double b)
static float min(float a, float b)
static int min(int a, int b)
static long min(long a, long b)
double d = Math.min(9.5, 9.50001);
int i = Math.min(0, -1);
d = 9.5
i = -1
주어진 두 값을 비교하여 작은 쪽을 반환한다.
static double random() double d = Math.random();
int i = (int)(Math.random()*10)+1
0.0 <= d < 1.0
1<= i <11
0.0~1.0범위의 임의의 double값을 반환한다.
(1.0은 범위에 포함되지 않는다.)
static double rint(double a) double d = Math.rint(1.2);
double d2 = Math.rint(2.6);
double d3 = Math.rint(3.5);
double d4 = Math.rint(4.5);
double d5 = Math.rint(-1.5);
double d6 = Math.rint(-1.4);
d = 1.0
d2 = 3.0
d3 = 4.0
d4 = 4.0
d5 = -2.0
d6 = -1
주어진 double값과 가장 가까운 정수값을
double형으로 반환한다.
단, 두 정수의 정가운데 있는 값
(1.5, 2.5, 3.5 등)은 짝수로 반환
static long round(double a)
static long roubd(float a)
double l = Math.round(1.2);
double l2 = Math.round(2.6);
double l3 = Math.round(3.5);
double l4 = Math.round(-1.1);
double l5 = Math.round(-1.8);
double d = 90.7552;
double d2 = Math.round(d*100)/100.0;
l = 1
l2 = 3
l3 = 4
l4 = -1
l5 = -2
d = 90.7552
d2 = 90.76
소수점 첫째자리에서 반올림한 정수값(long)을
반환한다. 매개변수의 값이 음수인 경우

 

댓글