JAVA

[java.lang] Math 클래스

ewok 2023. 3. 9. 15:18

기본적인 수학계산에 유용한 메서드로 구성되어 있다.

 

Math클래스의 생성자는 private이기 때문에 다른 클래스에서 Math인스턴스를 생성할 수 없도록 되어 있다. 왜냐하면 클래스 내에 인스턴스 변수가 하나도 없어서 인스턴스를 생성할 필요가 없기 때문이다.

 

올림

Math.ceil();

 

버림

Math.floor();

 

 

반올림

round()

Math.round();

round()는 항상 소수점 첫째 자리에서 반올림을 해서 정수값(long)을 결과로 돌려준다.

 

원하는 자리 수에서 반올림된 값을 얻기 위해서는 10n으로 곱한 후, 다시 곱한 수로 나눠주면 된다.

1. 원래 값에 100을 곱한다.
	90.7552 * 100 → 9075.52

2. 위의 결과에 Math.round()를 사용한다.
	Math.round(9075.52) → 9076

3. 위의 결과를 다시 100.0으로 나눈다.
	9076 / 100.0 → 90.76
    // 9076 / 100 → 90

 

rint()

Math.rint();

rint()는 주어진 double값과 가장 가까운 정수값을 double형을 반환한다. 두 정수의 정가운데 있는 값은 가장 가까운 짝수 정수를 반환한다.

Math.rint(-1.5);	// -2.0

 

 

삼각함수와 지수, 로그

import static java.lang.Math.*;
import static java.lang.System.*;

class MathEx3 {
	public static void main(String args[]) {
		int x1=1, y1=1;  // (1, 1)
		int x2=2, y2=2;  // (2, 2)

		double c = sqrt(pow(x2-x1, 2) + pow(y2-y1, 2));		// (x1, y1)(x2, y2) 두 점간의 거리
		double a = c * sin(PI/4);  // PI/4 rad = 45 degree
		double b = c * cos(PI/4);
//		double b = c * cos(toRadians(45));

		out.printf("a=%f%n", a);   
		out.printf("b=%f%n", b);  
		out.printf("c=%f%n", c);  
		out.printf("angle=%f rad%n", atan2(a,b));	
		out.printf("angle=%f degree%n%n", atan2(a,b) * 180 / PI);	
//		out.printf("angle=%f degree%n%n", toDegrees(atan2(a,b)));	

		out.printf("24 * log10(2)=%f%n",   24 * log10(2));  // 7.224720
		out.printf("53 * log10(2)=%f%n%n", 53 * log10(2));  // 15.954590
	}
}

a, b는 끼인각이다.

삼각함수는 매개변수의 단위가 '라디안'이므로 45도를 라디안으로 변환해야 한다. 180도 = π rad이므로 45도 = π/4 rad이다.

toRadians()을 이용해 라디안으로 변환할 수도 있다.

 

atan2()는 직각 삼각형에서 두 변의 길이 a, b를 알면 끼인각을 구해준다. 결괏값은 라디안이므로 도(degree)로 변환하려면 180/PI를 곱하거나 toDegrees(double angrad)를 이용하면 된다.

 

 

Math클래스의 메서드

자주 쓰이는 메서드들이다.