IT/JavaScript

[JS] 자바스크립트 'Math.round()' 함수가 뭘까?

Buang 2023. 2. 2. 12:26
반응형

1. Math.round() 함수란?

 

Math.round() 함수는 

실수를 반올림해서 정수로 만들어주는 함수다.

 

12.55같은 경우 소수점 첫 째 자리 수가 5이기에

반올림이 일어나서 13이 된다. 이렇게 실수 12.55를

정수 13으로 만들어 주는 게 Math.round 함수다.

 

A = Math.round(12.45); //결과: 12
B = Math.round(12.55); //결과: 13
C = Math.round(12.4554533); //결과: 12

 

1) Math.round(12.45);

Math.round 함수 안에 인수로 12.45를 넣으면 결과로 12가 나온다.

반올림은 소수점 첫 번째 자리가 5 이상이면 가능하다.

실수 12.45의 소수점 첫 번째 자리는 4이기에 반올림이 불가하다.

따라서 반올림없이 뒤의 소수는 버려지고 12만 남게 된다.

 

2) Math.round(12.55);

소수점 첫 번째 자리가 5인 12.55에선 반올림이 가능하다.

그래서 12.55가 13으로 바뀌기에 결과로 13이 나온다.

 

3) Math.round(12.4554533);

12.4554533 처럼 뒤의 소수점 뒤의 숫자가 길이가 아무리 길어도

Math.round에 의해 반올림이 가능하다면 반올림하고,

만약 안된다면 뒤의 소수점 뒤에 오는 숫자를 모두 버리고 정수를 반환한다.

 


2. 소수 자릿 수 몇 개만 나오도록 하기

 

위에선 소숫점 뒤의 숫자들을 모두 버렸었다.

그런데 모두 버리지 않고, 소수점 뒤에 숫자 한 개만 나오도록 하거나

혹은 두 개나 세 개만 나오도록 하는 방법도 있다.

 

let A = 12.3456;
const round = Math.round(A * 10) / 10;

console.log(round);

12.3456이란 실수의 소수점 첫 번째 자리까지만 나오도록,

즉 12.3으로 나오게 하고 싶으면

위와같이 코드를 작성하면 된다.

 

const round = Math.round(A * 10) / 10;

 

변수 A에는 12.3456이 저장됐었다.

1) 12.3456 * 10이 가장 먼저 이루어져서 123.456이 나오고,

2) Math.round(123.456)에 의해 반올림 여부를 체크하는데

소수점 첫 번째 숫자가 5이상이 아닌 4이기에 반올림이 이루어지지 않고, 123만 남게 된다.

3) 123 / 10에 의해 12.3이 최종적으로 나오고 round 변수에 저장된다.

 

 

 

코드를 실행시키면

콘솔창에 12.3이 찍히는 걸 확인할 수 있다.

 

만약 소수점 뒤의 한 자리가 아닌 세 자리가 나오도록 하고 싶다면?

 

 

10을 1000으로 바꿔주면

소수점 뒤의 세자리수가 출력되는 걸 확인할 수 있다.

 

Math.round(A * 1000) / 1000;

형태로 작성할 경우 소수점 뒤의 3자리를 남겨놓고, 반올림이 이루어진다.

즉 12.5456에 있는 마지막 소수인 6이 반올림 가능한지 체크하고,

반올림이 가능하니 6을 반올림해서 12.546이 되는 것이다.

 

반응형