Math클래스
Math클래스는 접근 제어자가 private이기에 다른클래스에서 Math 인스턴스를 생성할 수 없다.
Math클래스의 메서드는 모두 static으로 구성된다.
기본적으로 올림, 버림, 반올림을 할 수 있다.
정수형으로 반올림하는 round()를 많이 사용한다.
https://standout.tistory.com/1203
Exact가 포함된 메서드들이 있다.
addExact, subtractExact, multiplyExact, incrementExact, decrementExact, negateExact, toIntExact
연산중 오버플로우나 언더플로우 등의 산술연산오류를 방지하기위해
결과를 반환할 뿐 인 연산자에게 예외를 발생하게 한다.
https://standout.tistory.com/1204
https://standout.tistory.com/1205
대부분의 연산에는 오차가 없지만
os별로 다른 실행결과를 도출할 수도 있어 이런 차이를 없애기위해 StrictMath 클래스를 활용하기도 한다.
https://standout.tistory.com/1208
Math클래스의 메서드를 살펴보자.
static double abs(double a)
static double abs(float f)
static double abs(int f)
static double abs(long f)
숫자의 절댓값을 반환한다.
double absDouble = Math.abs(-10.5); // absDouble: 10.5
float absFloat = Math.abs(-7.2f); // absFloat: 7.2
int absInt = Math.abs(-15); // absInt: 15
long absLong = Math.abs(-123L); // absLong: 123
static double ceil(double a)
인자보다 크거나 같은 double값을 반환한다.
double ceilResult = Math.ceil(8.3); // 천장 결과: 9.0
static double floor(double a)
인자보다 작거나 큰 double 값을 반환한다.
double floorResult = Math.floor(8.7); // 바닥 결과: 8.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 maxResult = Math.max(15.4, 10.6); // 최댓값: 15.4
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 minResult = Math.min(15.4, 10.6); // 최솟값: 10.6
static double random()
0.0이상 1.0미만의 난수를 반환한다.
double randomValue = Math.random(); // 랜덤 값: 0.12345... (랜덤 값)
static double rint(double a)
인자에 가장 가까운 double값을 반환하되 수학적으로 정수에 가깝도록 반올림한다.
double rintResult = Math.rint(15.6); // 반올림 결과: 16.0
static long round(double a)
static long round(float a)
인자에 가장 가까운 long 혹은 int 값을 반환한다.\
long roundResult = Math.round(15.8); // 반올림 결과 (long): 16
float roundFloatResult = Math.round(15.3f); // 반올림 결과 (float): 15
'JAVA' 카테고리의 다른 글
Object클래스를 보완하다, java.util.Objects 클래스 (0) | 2023.12.22 |
---|---|
StrictMath 클래스와 Math클래스 (0) | 2023.12.22 |
ajax 검색기능 구현하기 (0) | 2023.12.22 |
Math클래스: Exact 메서드 (0) | 2023.12.14 |
Math클래스: 올림, 버림, 반올림 ceil(), floor(), round(), rint() (0) | 2023.12.14 |