프론트엔드/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