자바 Math 클래스로 반올림, 올림, 내림하기

자바 Math 클래스를 사용해서 변수를 반올림, 올림, 내림해보자.

Math.round : 소수점 첫째 자리에서 반올림
Math.ceil : 소수점 첫째 자리에서 무조건 올림
Math.floor : 소수점 첫째 자리에서 무조건 내림

1. Math.round

  • 소수점 첫째 자리에서 반올림 한 후 원하는 자리수까지 나타내기
  • 여기서 중요한 것은 반올림하고자 하는 소수점 자리를 소수점 첫째 자리로 만들어버리는 것!
double num1 = 1.23456;
double num2 = 1.25678;

//정수만 나타내기
System.out.println("num1 = " + Math.round(num1));
System.out.println("num2 = " + Math.round(num2));
//num1 = 1
//num2 = 1

//소수점 둘째 자리에서 반올림 후 소수점 첫째 자리까지 나타내기
System.out.println("num1 = " + (Math.round(num1*10)/10.0));
System.out.println("num2 = " + (Math.round(num2*10)/10.0));
//num1 = 1.2
//num2 = 1.3

//소수점 셋째 자리에서 반올림 후 소수점 둘째 자리까지 나타내기
System.out.println("num1 = " + (Math.round(num1*100)/100.0));
System.out.println("num2 = " + (Math.round(num2*100)/100.0));
//num1 = 1.23
//num2 = 1.26

2. Math.ceil

  • 소수점 첫째 자리에서 무조건 올림하기
  • 여기서 중요한 것은 올림하고자 하는 소수점 자리를 소수점 첫째 자리로 만들어버리는 것!
double num1 = 1.23456;
double num2 = 1.25678;

//소수점 첫째 자리까지 나타내기(기본)
System.out.println("num1 = " + Math.ceil(num1));
System.out.println("num2 = " + Math.ceil(num2));
//num1 = 1.0
//num2 = 1.0

//정수로 나타내려면 int로 형변환
System.out.println("num1 = " + (int) Math.ceil(num1));
System.out.println("num2 = " + (int) Math.ceil(num2));
//num1 = 1
//num2 = 1

//소수점 둘째 자리에서 올림 후 소수점 첫째 자리까지 나타내기
System.out.println("num1 = " + (Math.ceil(num1*10)/10.0));
System.out.println("num2 = " + (Math.ceil(num2*10)/10.0));
//num1 = 1.3
//num2 = 1.3

//소수점 셋째 자리에서 올림 후 소수점 둘째 자리까지 나타내기
System.out.println("num1 = " + (Math.ceil(num1*100)/100.0));
System.out.println("num2 = " + (Math.ceil(num2*100)/100.0));
//num1 = 1.24
//num2 = 1.26

원리(Math.round와 동일)

  • 올리고자 하는 소수점 자리를 소수점 첫째 자리로 만든다. 만약 소수점 둘째 자리에서 올림 하고 싶으면 10을 곱하고, 소수점 셋째 자리에서 올림 하고 싶다면 100을 곱한다.
  • 이제 Math.ceil()안의 변수는 소수점 첫째 자리에서 올림 되었다.
  • 다시 이 수에 소수점 자리를 나타내기 위해 10.0으로 나눈다. 여기서 10.0은 소수점 첫째 자리를 나타낸다. 만약 소수점 둘째 자리까지 나타내고 싶다면 100.0을 나눈다.

3. Math.floor

  • 소수점 첫째 자리에서 무조건 내림하기
  • 여기서 중요한 것은 내림하고자 하는 소수점 자리를 소수점 첫째 자리로 만들어버리는 것!
double num1 = 1.23456;
double num2 = 1.25678;

//소수점 첫째 자리까지 나타내기(기본)
System.out.println("num1 = " + Math.floor(num1));
System.out.println("num2 = " + Math.floor(num2));
//num1 = 1.0
//num2 = 1.0

//정수로 나타내려면 int로 형변환
System.out.println("num1 = " + (int) Math.floor(num1));
System.out.println("num2 = " + (int) Math.floor(num2));
//num1 = 1
//num2 = 1

//소수점 둘째 자리에서 내림 후 소수점 첫째 자리까지 나타내기
System.out.println("num1 = " + (Math.floor(num1*10)/10.0));
System.out.println("num2 = " + (Math.floor(num2*10)/10.0));
//num1 = 1.2
//num2 = 1.2

//소수점 셋째 자리에서 내림 후 소수점 둘째 자리까지 나타내기
System.out.println("num1 = " + (Math.floor(num1*100)/100.0));
System.out.println("num2 = " + (Math.floor(num2*100)/100.0));
//num1 = 1.23
//num2 = 1.25

원리(Math.round와 동일)

  • 내리고자 하는 소수점 자리를 소수점 첫째 자리로 만든다. 만약 소수점 둘째 자리에서 올림 하고 싶으면 10을 곱하고, 소수점 셋째 자리에서 올림 하고 싶다면 100을 곱한다.
  • 이제 Math.floor()안의 변수는 소수점 첫째 자리에서 내림 되었다.
  • 다시 이 수에 소수점 자리를 나타내기 위해 10.0으로 나눈다. 여기서 10.0은 소수점 첫째 자리를 나타낸다. 만약 소수점 둘째 자리까지 나타내고 싶다면 100.0을 나눈다.
💗 개발 공부하는 블로그입니다. 틀리거나 문제될게 있다면 코멘트 부탁드립니다. 👉👈