프론트엔드/JS

parseInt, parseFloat, Math.floor 에 대해

journey-dev 2023. 7. 22. 21:09

✅ Number.parseInt(string, radix)

1. 문자열을 radix에 해당하는 "진수로 읽어서" → 10진법인 숫자형으로 바꿈.

 

예제코드1 )

parseInt("10", 2); 
// 2 - 파라미터 "10"을 2진법으로 읽어서, 10진법으로 변환한 값을 리턴함.

parseInt("0021", 3); 
// 7 - 파라미터 "0021"을 3진법으로 읽어서, 10진법으로 변환한 값을 리턴하였습니다.

 

예제코드2 )

function solution(idx) {
  return parseInt(idx, 10);
}

// 실행코드
console.log(solution('1234')); // 1234 (문자 "1234"를 10진법으로 읽어서, 10진법인 정수로 바꿈)
console.log(solution('-1234')); // -1234 // 1234 (문자 "-1234"를 10진법으로 읽어서, 10진법인 정수로 바꿈)

 

2. 문자열을 숫자형으로 바꾸지 못하는 경우

: NaN을 반환한다.

: 그러나 숫자가 아닌 다른 형이 시작되는 경우("숫자+문자" 일 경우) 숫자형만 반환하고 문자는 제거된다.

parseInt("min"); // NaN
parseInt("min123"); // NaN
parseInt("1234min"); // 1234
parseInt("1234.123"); // 1234

 

 parseInt와 parseFloat의 차이점 

Number.parseInt(string, radix) : "정수" 값을 반환하기 위해 소수점 이하 값을 잘라냄.
Number.parseFloat(string) : "실수"로 파싱해 반환함.

parseInt("1.901"); // 1
parseFloat("1.901"); // 1.901

 Math.floor()

주어진 숫자에서 제일 작은 정수 반환

Math.floor( 45.95); //  45
Math.floor( 45.05); //  45
Math.floor(  4   ); //   4
Math.floor(-45.05); // -46
Math.floor(-45.95); // -46

 

 

 parseInt와 Math.floor 의 차이점 

둘다 실수를 정수로 만들 수 있다는 공통점이 있다.

그러나 음수일 경우 parseInt는 소수점을 순수히 소수점을 없애지만, floor는 해당 숫자에서 제일 작은 정수를 반환하기 때문에 반올림 한 결과가 나온다.

Math.floor(12.7); // 12
parseInt(12.7); // 12

Math.floor(-12.3); // -13 !!
parseInt(-12.3); // -12