본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

JAVA

수학계산 메서드 모음집, Math클래스

Math클래스

Math클래스는 접근 제어자가 private이기에 다른클래스에서 Math 인스턴스를 생성할 수 없다.

Math클래스의 메서드는 모두 static으로 구성된다.

 

기본적으로 올림, 버림, 반올림을 할 수 있다.

정수형으로 반올림하는 round()를 많이 사용한다.

https://standout.tistory.com/1203

 

Math클래스: 올림, 버림, 반올림 ceil(), floor(), round(), rint()

ceil() 올림 소수점이 있을경우 올린다. 3.5 → 4.0 floor() 버림 소수점이 있을경우 버린다. 3.5 → 3 .0 round() 반올림 5이상의 경우 올린 '정수'로. 3.5 → 4 rint() 가까운 짝수의 방향으로 올림을, 내림을

standout.tistory.com

 

 

Exact가 포함된 메서드들이 있다.

addExact, subtractExact, multiplyExact, incrementExact, decrementExact, negateExact, toIntExact

연산중 오버플로우나 언더플로우 등의 산술연산오류를 방지하기위해

결과를 반환할 뿐 인 연산자에게 예외를 발생하게 한다.

https://standout.tistory.com/1204

 

Overflow 오버플로우 와 Underflow 언더플로우

Overflow 오버플로우 연산결과가 해당 데이터 타입의 최대값보다 큰경우 예를들어 int의 최대값 2147483647보다 큰경우 int maxValue = Integer.MAX_VALUE; // 2147483647 int overflowResult = maxValue + 1; // 이 연산은 오

standout.tistory.com

https://standout.tistory.com/1205

 

Math클래스: Exact 메서드

Exact가 포함된 메서드들이 있다. addExact, subtractExact, multiplyExact, incrementExact, decrementExact, negateExact, toIntExact 연산중 오버플로우나 언더플로우 등의 산술연산오류를 방지하기위해 결과를 반환할 뿐

standout.tistory.com

 

 

대부분의 연산에는 오차가 없지만

os별로 다른 실행결과를 도출할 수도 있어 이런 차이를 없애기위해 StrictMath 클래스를 활용하기도 한다.

https://standout.tistory.com/1208

 

StrictMath 클래스와 Math클래스

우선 StrictMath클래스의 사용방법은 수학계산을 하는 메서드가 들어있는 Math클래스와 같다고 생각하자. public class MathComparisonExample { public static void main(String[] args) { double angle = 45.0; // 각도 (라디안

standout.tistory.com

 

 

 

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