[JAVA] Math 클래스

Coastby·2022년 10월 3일
0

LIKELION Back-End School

목록 보기
28/61

Math 클래스는 기본적인 수학계산에 유용한 메서드로 구성되어 있다.
Math 클래스의 생성자는 접근 제어자가 private이기 때문에 다른 클래스에서 Math 인스턴스를 생성할 수 없다. 클래스 내에 인스턴스 변수가 하나도 없어서 인스턴스를 생성할 필요가 없기 때문이다.
Math 클래스의 메서드는 모두 static이며, E (자연로그의 밑)와 PI (원주율) 2개의 상수만 정의해 놓았다.

○ 반올림, 버림, 올림

System.out.println("반올림(첫째 자리에서): "+Math.round(sum));               //소수점 첫째자리에서 반올림
System.out.println("반올림 응용: "+Math.round((sum) * 10) / 10.0);      //소수점 첫번째자리까지 표시
System.out.println("반올림 응용: "+Math.round((sum) * 100) / 100.0);    //소수점 두번째자리까지 표시

System.out.println("올림: "+Math.ceil(sum));    // 올림
System.out.println("버림: "+Math.floor(sum));    //버림

출처: https://conservative-vector.tistory.com/entry/자바-숫자-반올림버림내림 [에움길:티스토리]

Math 클래스 이외에도 반올림을 할 수 있는 방법이 2가지 있다.

  1. int로 형변환
int round = (int)(0.5 + num); 

//예) 평균을 반올림으로 구하기
int mean = int(0.5 + (double)sum/size);
  1. printf 이용하기
int num = 1;
double num1 = 8.0;

System.out.println(num/num1); //0.125
System.out.printf("%.2f\n",num/num1); //0.1250
System.out.printf("%.1f",num/num1); //0.13

○ Math의 메서드


출처: https://dlsdn73.tistory.com/377

double radian45 = Math.toRadians(45);		//==Math.PI/4
System.out.println(radian45);			//0.7853981633974483
System.out.println("sin45" + Math.sin(radian45));

System.out.println("2의 10승 : " + Math.pow(2, 10));
System.out.println("25의 제곱근 : " + Math.sqrt(25));
System.out.println("로그 25 : " + Math.log(25));

int num = (int) (Math.random() * 100) + 1;
System.out.println("1~100 랜덤 수 : " + num);

System.out.println(Math.PI);

○ StrictMath 클래스

Math 클래스는 최대한의 성능을 위해 JVM이 설치된 OS의 메서드를 호출해서 사용한다. 즉, OS 의존적인 계산을 하고 있다. 예를 들어, 부동 소수점 계산의 경우 반올림의 처리방법 설정이 OS마다 다를 수 있다. 따라서 같은 자바로 작성된 프로그램임에도 불구하고 컴퓨터마다 결과가 다를 수 있다.
이러한 차이를 없애기 위해 성능은 다소 포기하는 대신 어떤 OS에서 실행되어도 항상 같은 결과를 얻도록 Math 클래스를 새로 작성한 것이 StrictMath 클래스이다.

profile
훈이야 화이팅

0개의 댓글