참고 문제
다른 언어 공부하다 다른 언어로 풀려고 하면 기본적인 게 생각이 안 날 때도 있다.. 문법도 금방 알아차려도 순간 헷갈리고.. 다른 사람도 그런지 모르겠다. 간단한 것도 정리를 잘 해놓자! (파이썬 풀다 자바스크립트로 오면 ;, { } 등 붙여주기 귀찮아진다.)
✏️ JavaScript에서 정수를 만드는 여러 방법
1. Math.floor() - 소수점 내림
Math.floor(x), x보다 작거나 같은 가장 큰 정수를 반환한다. (양수에서 항상 뒤 소수점을 모두 버린다)
console.log(Math.floor(5.999)) // 5
console.log(Math.floor(-0)) // -0
console.log(Math.floor(-Infinity)) // -Infinity
console.log(Math.floor(-45.95)) // -46
2. Math.ceil() - 소수점 올림
항상 올림하여 주어진 숫자보다 크거나 같은 더 작은 정수를 반환한다.
console.log(Math.ceil(.82)) // 1
console.log(Math.ceil(7.0000002)) // 8
console.log(Math.ceil(-7.004)) // -7
console.log(Math.ceil(Infinity)) // Infinity
3. Math.round() - 소수점 반올림
가장 가까운 정수로 반올림한 숫자 값을 반환한다.
console.log(Math.round(5.95)) // 6
console.log(Math.round(5.05)) // 5
console.log(Math.round(-5.95)) // -6
console.log(Math.round(-5.05)) // -5
💡 인수의 소수 부분이 0.5보다 크면 인수는 절대값이 다음으로 높은 정수로 반올림됩니다.
0.5보다 작으면 절댓값이 작은 정수로 반올림합니다.
소수 부분이 정확히 0.5이면 인수는 +∞ 방향으로 다음 정수로 반올림됩니다.
4. Math.trunc() - 소수점 제거
(truncate = 길이를 줄이다, 데이터베이스 명령어 TRUNCATE은 테이블의 데이터를 전부 삭제하고 사용하고 있던 공간을 반납하는 것을 의미, 참고)
소수 자릿수를 제거하여 숫자의 정수 부분을 반환한다. (=> 인수가 양수인지 음수인지에 관계없이 무조건 소수점을 잘라 반환해 주기 때문에 소수점 뒷자리를 생각하지 않고 오로지 소수를 정수로 바꿔줄 때 적합)
console.log(Math.trunc(13.37)) // 13
console.log(Math.trunc(-0.123)) // -0
5. parseInt() - 문자열 => 정수
parseInt() 함수는 문자열 인수를 구문 분석(parse)하고 지정된 기수(radix_ the base in mathematical numeral systems)의 정수로 반환 = 문자열을 정수로 바꿔주는 함수
// Syntax
parseInt(string) // string은 정수로 시작되는 문자열, 공백은 무시된다.
parseInt(string, radix) // 기본값
// 모두 15 반환
parseInt("0xF", 16); // 15
parseInt("F", 16);
parseInt("17", 8);
parseInt("015", 10); // but `parseInt('015', 8)` will return 13
parseInt("15,123", 10);
parseInt("FXX123", 16);
parseInt("1111", 2);
parseInt("15 * 3", 10);
parseInt("15e2", 10);
parseInt("15px", 10);
parseInt("12", 13);
// NaN 반환
parseInt("Hi", 8) // NaN
parseInt("546", 2) // Digits other than 0 or 1 are invalid for binary radix
// 문자열이 아닌 경우 36기수와 함께 써주면 36기수의 해당 숫자 반환
parseInt(null, 36); // 1112745: The string "null" is 1112745 in base 36
parseInt(undefined, 36); // 86464843759093: The string "undefined" is 86464843759093 in base 36
소수를 정수로 만들고 싶을 때 사용한다면 아래와 같이 활용
※ 일반적으로 비문자열에 사용하는 것은 좋지 않다. (작은 숫자들에서만 효과) => Math.trunc() 사용하기
parseInt(15.99, 10); // 15
parseInt(-15.1, 10); // -15
parseInt("15.99", 10); // 15
'프로그래밍 > JavaScript' 카테고리의 다른 글
[JS] includes와 indexOf의 차이점 (0) | 2023.06.20 |
---|---|
[JS]Pass By Value(primitives) VS Pass By Reference(objects) (0) | 2023.03.24 |
[JS] A Truthy or Falsy Value in JavaScript (0) | 2023.02.17 |
[JS] Hosting 호이스팅이란? / 프로그래머스 구명보트 예시 문제 풀이 (0) | 2023.01.27 |
[JS] JavaScript에서 Number, 문자열 진법 자유롭게 변환하기 / 3진법 뒤집기 (0) | 2023.01.25 |