원본출처: http://fendee.egloos.com/9021629
산수 수준의 계산은 기본적인 연산자로도 충분하지만, 지수나 제곱근 등 수학 수준의 계산을 하기 위해서는 Math 클래스를 사용한다.
(공학이나 그래픽 관련 프로그래밍을 하지 않는 이상은 그다지 수학 함수를 쓸일은 없는것 같다.)
<Math 클래스의 메서드>
메서드명 : 동작 : 사용법 : 의미(b,c 는 int형, x,y는 double 형)
abs() : 절대값 : int a = Math.abs(b) : a = |b|
max() : 최대값 : int a = Math.max(b,c) : b,c 중 큰 수가 a 에 대입된다.
min() : 최소값 : int a = Math.min(b,c) : b,c 중 작은 수가 a 에 대입된다.
sqrt() : 제곱근 : double z = Math.sqrt(x) : z = 제곱근 기호 x
exp() : e 지수 : double z = Math.exp(x) : z = e 의 x승
pow() : 거듭제곱 : double z = Math.pow(x,y) : z = x의 y승
log() : 자연대수 : double z = Math.log(x) : z = log x
sin() : 사인 : double z = Math.sin(x) : z = sin x
cos() : 코사인 : double z = Math.cos(x) : z = cos x
tan() : 탄젠트 : double z = Math.tan(x) : z = tan x
abs() 메서드, max() 메서드, min() 메서드의 인수와 반환값의 형은 동일하며,
int 형 이외에 long형, float형, double형을 사용할 수 있다.
Math 클래스의 경우, 자바에서 기본 지원하기 때문에 별도의 패키지 임포트가 필요하지 않다.
sin(), cos(), tan() 의 삼각함수에서는 각도를 라디안 값으로 지정한다.
360도 = 2라디안.
#2009.03.22(일) 수정.
지적에 따르면, "360도 = 2 파이 라디안" 이라고 한다.
Math 클래스에 있는 다음의 메서드를 사용하면 단위를 변환할 수 있다.
메서드명 : 동작 : 사용법(a도, b라디안)
toRadians() : 각도 -> 라디안 : double b = Math.toRadians(a);
toDegrees() : 라디안 -> 각도 : double a = Math.toDegrees(b);
<Math 클래스의 필드>
필드명 : 내용
E : 자연대수의 밑(base) (2.718281828459045)
PI : 원주율(3.141592653589793)
참고
---------------------------------
public class a{
public static void main(String [] args){
double deg = 30, rad;
rad = Math.toRadians(deg);
double s = Math.sin(rad);
double c = Math.cos(rad);
double t = Math.tan(rad);
System.out.println("각도 " + deg + "도");
System.out.println("sin " + (float) s);
System.out.println("cos " + (float) c);
System.out.println("tan " + (float) t);
}
}
/*
출력결과:
각도 30.0도
sin 0.5
cos 0.8660254
tan 0.57735026
*/
---------------------------------
<난수 생성하기>
---------------------------------
public class a{
public static void main(String [] args){
double ran = Math.random();
System.out.println(ran);
}
}
---------------------------------
실행결과:
0.876697694296909
0.99105173629138
다른 언어에서처럼 자바에서도 random() 을 이용하여 난수를 생성할 수 있다.
실행결과에서 보듯이 길이가 일정하지 않기 때문에 난수를 이용해서 무언가를 하려면 이를 염두에 두어야 한다.
테스트해보니, 난수의 자료형은 double 형만 지원되는듯 하다.
long, int, float 형으로 지정하니 에러가 발생하였다.
첨부파일: rad_sin_cos_tan_random.zip