Java Category/Java

[JAVA] Math 클래스(올림, 내림, 반올림, 절댓값, 난수 등)

ReBugs 2023. 1. 23.

본 게시글은 혼자 공부하는 자바 (저자 : 신용권)의 책과 유튜브 영상을 참고하였고, 개인적으로 정리하는 글임을 알립니다.


java.lang.Math 클래스는 수학 계산에 사용할 수 있는 메소드를 제공하고 있다. Math 클래스가 제공하는 메소드는 모두 정적(static) 메소드이므로 바로 사용할 수 있다.

 

Math.abs(a) 메소드

  • int abs(int a)
  • double abs(double a)

a의 절댓값을 리턴

int v1 = Math.abs(-5); //5
double v2 = Math.abs(-3.14); //3.14

 

Math.ceil(a) 메소드

  • double ceil(double a)

a의 올림값을 리턴

double v3 = Math.ceil(5.3); //6.0
double v4 = Math.ceil(-5.3); //-5.0

 

Math.floor(a) 메소드

  • double floor(double a)

a의 내림값을 리턴

double v5 = Math.floor(5.3); //5.0
double v6 = Math.floor(-5.3); //-6.0

 

 

Math.max(a, b) 메소드

  • int max(int a, int b)
  • double max(double a, double b)

a와 b 중 더 큰 값을 리턴

int v7 = Math.max(5, 9); //9
double v8 = Math.max(5.3, 2.5); //5.3

 

 

Math.min(a,b) 메소드

  • int min(int a, int b)
  • double min(double a, double b)

a와 b 중 더 작은 값을 리턴

int v9 = Math.min(5, 9); //5
double v10 = Math.min(5.3, 2.5); //2.5

 

 

Math.random() 메소드

0.0과 1.0 사이(0.0 포함, 1.0 미포함) 범위에 속하는 하나의 double 타입의 값을 리턴

double v11 = Math.random(); //0.47464615326686044

 

1부터 n까지 자연수를 추출하는 코드는 아래와 같다.

int num = (int) (Math.random()*n) + 1;

0부터 n까지 자연수를 추출하려면 위 코드에서 +1을 지워주면 된다.

 

Math.rint(a) 메소드

  • double rint(double a)

a의 가장 가까운 정수의 실수값을 리턴

double v12 = Math.rint(5.3); //5.0
double v13 = Math.rint(5.7); //6.0

 

 

Math.round(a) 메소드

  • long round(double a)

a의 소수점 첫째 자리가 5 이상이면 다음 큰 정수값을, 4 이하이면 다음 작은 정수값을 리턴한다.

long v14 = Math.round(5.3); //5
long v15 = Math.round(5.7); //6

만약 원하는 소수 자릿수에서 반올림된 값을 얻기 위해서는 반올림할 자릿수가 소수점 첫째 자리가 되도록 10^n을 곱한 후, round()메소드의 리턴값을 얻고 다시 10^n.0을 나눠주면 된다.

n=2 즉, 소수점 두 번째 자리가 반올림되는 코드는 아래와 같다.

double value = 12.3456;
double temp1 = value * 100; //1234.56
long temp2 = Math.round(temp1); //1235
double v16 = temp2 / 100.0; //12.35

 

 

Math.pow(N, M) 메소드

  • N의 M제곱을 리턴하는 메소드
  • 리턴 타입은 double이다.
import java.util.Scanner;
public class Main {
    public static void main(String[] args) throws Exception{
    	Scanner sc = new Scanner(System.in);
    	int N = sc.nextInt();
    	int M = sc.nextInt();
    	double result = Math.pow(N, M); //N의 M제곱
        System.out.println(N + "^" + M  + "= "+ result);
    }
}
/*
2 5
2^5= 32.0
*/

댓글