[JavaScript] - 'parseInt' vs 'Math.floor' vs 'Math.trunc'

큘피·2024년 6월 18일

JavaScript-codingtest

목록 보기
2/6

parseInt

parseInt() 함수는 문자열 인자를 파싱하여 특정 진수(수의 진법 체계에서 기준이 되는 값)의 정수를 반환합니다.
진수의 기본값이 10이 아닙니다.
parseInt 는 1. number→string 2. 10진수 추론을 위해 string 앞 글자가 0x나 0X인지 비교

Math.floor

주어진 숫자를 내림합니다.

Math.trunc

주어진 숫자의 소수점을 제거하고 정수부분을 반환합니다.
trunc은 truncate의 약자로 자르다의 뜻을 가지고있습니다.

예시 코드 1

a1 = parseInt( "12.34" ); // 12
b1 = parseInt( "56.78" ); // 56

a2 = Math.floor( "12.34" ); // 12
b2 = Math.floor( "56.78" ); // 56

a2 = Math.trunc( "12.34" ); // 12
b2 = Math.trunc( "56.78" ); // 56

예시 코드 2

c1 = parseInt( "-12.34" ); // -12
d1 = parseInt( "-56.78" ); // -56

c2 = Math.floor( "-12.34" ); // -13
d2 = Math.floor( "-56.78" ); // -57

c3 = Math.trunc( "-12.34" ); // -12
d3 = Math.trunc( "-56.78" ); // -56

여기서 floor의 결과를 보면 -12, -56이 아닌 -13, -57이 나오는 걸 볼 수 있다.

예시 코드 3

e1 = parseInt( "12  34  56" ); // 12
e11 = parseInt( "12adf  34  56" ); // 12

e2 = Math.floor( "12  34  56" ); // NaN

e3 = Math.trunc( "12  34  56" ); // NaN

parseInt는 NaN이 아닌 결과를 알 수 있다.
만약 parseInt 함수가 지정한 radix에서의 숫자가 아닌 문자를 마주치는 경우 해당 문자 이전까지의 문자만 사용해 파싱하며 문제의 문자와 그 이후는 모두 무시 한다.

결론

코딩테스트를 볼때 Math.trunc을 추천합니다.

profile
취준생의 개발블로그

0개의 댓글