티스토리 뷰

"1234.56789" 같은 소수를 갖고 숫자를 보여줄 때, 소수점 2자리까지만 보여주고 싶을 때가 있습니다.

 

먼저 숫자를 소수점 2자리로 반올림하고, 그 숫자를 문자열로 변환하여 출력할 수 있습니다.

 

소수점 2자리로 반올림하는 방법에 대해서 알아보겠습니다.

 

toFixed()로 소수점 2자리까지 반올림

number.toFixed(N)은 소수점 N자리까지 반올림합니다. 아래와 같이 소수점 2자리까지 출력하도록 구현할 수 있습니다.

 

  • 1234.56789를 소수점 3자리에서 반올림하면 1234.57
  • 1234.56555를 소수점 3자리에서 반올림하면 1234.57
  • 1234.56455를 소수점 3자리에서 반올림하면 1234.56
let num = 1234.56789;
let result = num.toFixed(2);
console.log(result);

num = 1234.56555;
result = num.toFixed(2);
console.log(result);

num = 1234.56455;
result = num.toFixed(2);
console.log(result);

실행 결과:

1234.57
1234.57
1234.56

 

문자열을 number 타입으로 변환

참고로, toFixed()는 결과로 string 타입 객체를 리턴합니다. number로 변환하려면 아래와 같이 Number()의 인자로 문자열 숫자를 전달하면서 객체를 생성하면 됩니다.

let num = 1234.56789;
let result = num.toFixed(2);
let newNum = Number(result);
console.log(typeof newNum);
console.log(newNum);

실행 결과:

number
1234.57

 

숫자로 된 문자열 객체

또한, toFixed()는 number 타입 객체만 사용할 수 있습니다. 만약 아래와 같이 문자열 객체에 대해서 사용하면 

let num = "1234.56789";
let result = num.toFixed(2);

아래와 같이 타입 에러가 발생합니다.

Error: 
/home/mjs/js_project/examples/node_f256b318a1de1.tmp.js:2
let result = num.toFixed(2);
                 ^
TypeError: num.toFixed is not a function
    at Object.<anonymous> (/home/mjs/js_project/examples/node_f256b318a1de1.tmp.js:2:18)

 

이럴 때는, parseFloat(numStr)으로 문자열 타입을 number 타입으로 변환하고,  number 객체로 toFixed()를 사용하여 소수점 2자리까지 표현할 수 있습니다.

let numStr = "1234.56789";
let num = parseFloat(numStr);

let result = num.toFixed(2);
console.log(result);

실행 결과:

1234.57