본문 바로가기

Java SE Tutorials/Math

Java Math Class

Java 프로그래밍, Math 클래스


Math 클래스에는 삼각함수, 로그 등 수학 계산에 필요한 40여개의 static 메소드와 2개의 상수가 포함되어 있다

Math 클래스에 포함된 2개의 상수

  • Math.E  : 자연대수 (2.71828...)
  • Math.PI : 원주율 (3.141592...)


Math클래스의 몇가지 메소드 테스트

public class MathDemo 
{
	public static void main(String[] args) 
	{
		// 자연로그
		double val = Math.log(2.71828);
		System.out.printf("자연로그 ln(2.71828)=%f %n", val);
		
		// 상용로그
		val = Math.log10(100);
		System.out.printf("상용로그 log10(100)=%f %n", val);
		
		// 제곱
		val = Math.pow(2, 3); // a의 b승 
		System.out.printf("2의 3승=%f %n", val);
		
		// 제곱근
		val = Math.sqrt(25); // 제곱근
		System.out.printf("25의 제곱근=%f %n", val);
		
		// 자연대수를 밑으로 하는 지수승
		val = Math.exp(1);
		System.out.printf("자연대수를 밑으로 하는 지수승=%f %n", val);
		
		// 0.0 ~ 1.0 사이의 임의의 수 추출(1.0 비포함)
		val = Math.random();
		System.out.printf("Math.random()=%f %n", val);
		
		// 반올림
		val = Math.round(12.345);
		System.out.printf("반올림=%f %n", val);
	}
}


호도법(Radian)

각도를 수로 표현하는 2가지 방법이 있는데 육십분법(일반각)과 호도법(Radian)이 있다. 육십분법은 한바퀴 회전한 각을 360도로 나타내는 방법이며 일반적으로 자주 사용되기 때문에 사람들에게 직관적으로 인식되는 장점이 있다. 그러나 공학에서는 큰 각을 다룰 때 일반각을 사용하면 직관성이 떨어지고 숫자가 커지므로 좋은 방법은 못된다. 그래서 공학에서는 호도법이 자주 사용되는데, 호도법은 원의 반지름에 해당하는 원호가 원의 중심과 이루는 각을 1[rad]으로 정하고 있다.

반지름에 해당하는 원호의 길이가 1라디안이라면, 원주 전체는 몇 라디안일까?


삼각함수 사용 예

public class MathDemo 
{
	public static void main(String[] args) 
	{
		// sin30도의 값은 1/2 인데, 이렇게 하면 다른 값이 나온다
		double val = Math.sin(30);
		System.out.printf("sin(30)=%f %n", val);  // sin(30)=-0.988032
		
		// 자바의 삼각함수 메소드는 일반각이 아닌 라디안으로 간주하기 때문이다
		// 일반각(60분법) 30도를 라디안 단위로 변환하여 다시 sin()메소드를 호출한다
		double rad = Math.toRadians(30); 
		val = Math.sin(rad);
		System.out.printf("sin(30)=%f %n", val); // sin(30)=0.500000
		
		// 180[deg] = PI[rad]이므로 이 공식을 이용하여 일반각을 라디안으로 변환해도 된다
		// 1[deg] = PI/180 [rad] 
		
		rad = 30*Math.PI/180; // 30[deg]를 라디안으로 변환
		val = Math.sin(rad);
		System.out.printf("sin(30)=%f %n", val); // sin(30)=0.500000
	}
}