Java

Math 클래스를 이용하여 반올림, 올림, 내림 하기, 절대값 구하기

에어팟맥스 2022. 6. 9. 23:56

1. 반올림 Math.round()

 

Math.round(double 타입의 실수) ==> long 타입의 정수
Math.round(float 타입의 실수) ==> int 타입의 정수


Math.round(실수) ==> 입력한 실수의 정수 일의자리까지만 보여주고 나머지 소수부는 반올림하면서 삭제된다.

e.g.
 Math.round(93.45678) ==> 93
 Math.round(86.87654) ==> 87

 

Math.round(실수)를 이용하여 특정 소수부 자리에서 반올림을 하고자 한다면

소수부 첫째 자리까지 나타내면서 반올림 => Math.round(실수*10)/10.0

소수부 둘째 자리까지 나타내면서 반올림 => Math.round(실수*100)/100.0

의 방식으로 표현할 수 있다.

public class Main_Math {

	public static void main(String[] args) {
		
        double db1 = 93.45678, db2 = 86.87654;
        
        System.out.println("db1=> " + Math.round(db1*10)/10.0 + " , db2=> " + Math.round(db2*10)/10.0);
		// db1=> 93.5 , db2=> 86.9
        
        System.out.println("db1=> " + Math.round(db1*100)/100.0 + " , db2=> " + Math.round(db2*100)/100.0);
		// db1=> 93.46 , db2=> 86.88

 

 

2. 올림 Math.ceil()

 

54.0 ==> Math.ceil(54.0) ==> 54.0
54.1 ==> Math.ceil(54.1) ==> 55.0
54.9 ==> Math.ceil(54.9) ==> 55.0

 

		double db3=54.0, db4=54.1, db5=54.9;
		System.out.println("db3=> " + Math.ceil(db3)+", db4=> " + Math.ceil(db4) + ", db5=> " + Math.ceil(db5));
        // db3=> 54.0, db4=> 55.0, db5=> 55.0

 

 Math.ceil() 의 경우 웹페이지의 하단 페이지바 와 같은 곳에서 주로 사용된다.

 

e.g.

웹페이지 게시판은 한 페이지당 10개의 게시물을 보여준다. 

보여줄 게시물이 32개가 있는 경우 총 페이지 수는 ?

 

10개  10개  10개  2개

  1        2       3       4

 

총 페이지 수는 4페이지가 되어야 한다.

 

이 때 Math.ceil() 를 이용하면 총 페이지 수를 구할 수 있다.

		int totalCount = 30;
		int sizePerPage = 10;
		double totalPage = (double)totalCount/sizePerPage; // 실제로 totalPage 는 double을 잘 사용하지 않음
		System.out.println("totalPage => " + Math.ceil(totalPage));
		// totalPage => Math.ceil(3.0) ==> 3.0
		
		System.out.println("totalPage => " + (int)Math.ceil(totalPage));
		// totalPage => 3
        
  // #################################################### //
		
		// 실제로 주로 사용하는 방법
		int totalPge = (int) Math.ceil( (double)totalCount/sizePerPage );
		System.out.println("totalPge => " + totalPge); 
		// totalPge => 3

 

3. 내림 Math.floor()

 

54.0 ==> Math.floor(54.0) ==> 54.0
54.1 ==> Math.floor(54.1) ==> 54.0
54.9 ==> Math.floor(54.9) ==> 54.0

 

		db3=54.0; db4=54.1; db5=54.9; // ,는 최초에 초기화 할 때만 사용, 그 뒤로 값을 바꿀 땐 ; 사용해야함
		System.out.println("\n === 내림 한 후 ===");
		System.out.println("db3=> " + Math.floor(db3)+", db4=> " + Math.floor(db4) + ", db5=> " + Math.floor(db5));
		// db3=> 54.0, db4=> 54.0, db5=> 54.0
		
		System.out.println("db3=> " + (int)Math.floor(db3)+", db4=> " + (int)Math.floor(db4) + ", db5=> " + (int)Math.floor(db5));
		// db3=> 54, db4=> 54, db5=> 54

 

 

4. 절대값 Math.abs()

		int a = 20, b = -30;
		System.out.println("a => "+ a + " , b => " + b);
		// a => 20 , b => -30
		
		System.out.println("a => "+ Math.abs(a) + " , b => " + Math.abs(b));