코딩테스트/프로그래머스 기초 트레이닝

[Javascirpt] 실수를 정수로 바꾸기 - parseInt() Math.trunc()

dev_swH 2023. 5. 16. 23:12

저번 주부터 코딩테스트를 차근차근 준비하려고 프로그래머스의 코딩 기초 트레이닝부터 풀고 있다. 웬만하면 반복 코딩 작업으로 알아서 외워지기를 바랐지만^.T...돌아서면 까먹기를 반복하는 스스로를 발견하고 오랜만에 공부 블로그의 쌓인 먼지를 털어냈다.

이 기회에 테스트에서든 실제 프로젝트에서든 자주 사용하는 자바스크립트 메소드와 함수를 정리하고 기억해둘 만한 문제들을 정리해두기로!!!! 

 

(1) parseInt()

parseInt() 함수는 원래 문자열을 매개변수로 받아 특정 진수의 정수로 반환하는 함수.

사용 방식 :
parseInt(문자열)
parseInt(문자열, 진수를 나타내는 숫자)
반환 값의 타입 : 숫자 자료형

 

근데 parse가 무슨 뜻?

'파싱(parsing)'이란 ?
데이터를 조립해서 특정한 데이터만을 추출하는 것
어떤 자료에서 내가 원하는 정보만 가공하고 추출해서 원할 때 불러오게 하는 것
파싱 기법 : JSON, XML 등

 

그런데 parseInt() 함수의 첫 번째 매개변수가 문자열이 아닐 경우, ToString 추상 연산을 통해서 매개변수를 문자열로 변환시켜 넣는다고 한다.

그러니 매개변수로 숫자를 넣어도 일단 문자열로 변환시킨 후 함수를 실행하고 다시 결과값으로 숫자를 반환하는 셈.

두 번째 매개변수는 안 넣어도 알아서 10진수처럼 연산되기는 하지만, 기본값이 10은 아니라서 조심하라고 경고하고 있다.

자세한 내용은 아래의 공식 문서를 참고.

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/parseInt#%EC%84%A4%EB%AA%85

 

parseInt() - JavaScript | MDN

parseInt() 함수는 문자열 인자를 파싱하여 특정 진수(수의 진법 체계에서 기준이 되는 값)의 정수를 반환합니다.

developer.mozilla.org

 

(2) Math.trunc()

사실 코딩테스트의 문제 설명을 보면 1번째 방법보다 2번째가 더 적합하다고 생각한다.

 

문제 설명 : 

실수 flo가 매개 변수로 주어질 때, flo의 정수 부분을 return하도록 solution 함수를 완성해주세요.

 

Math.trunc()는 주어진 값의 소수 부분을 제거하고 숫자의 정수 부분만 반환하는 함수다.

사용 방식 :
Math.trunc(숫자)

 

Math.floor()와 비슷해 보이지만 구분할 필요가 있다.

Math.floor()는 내림 계산을 하는 함수로서, 주어진 매개변수 이하 중에서 가장 큰 정수를 반환하기 때문에

-5.22 와 같이 음수가 매개변수로 들어가면 -6을 반환한다.

반면에 Math.trunc()는 말 그대로 소숫점을 제거할 뿐이기 때문에

똑같이 -5.22를 매개변수로 넣었을 때 -5를 반환하게 된다.