Number.isInteger()

·2022년 3월 19일
0

어떤 숫자 num이 주어졌을 때,
Number.isInteger()를 이용해
정수라면 그대로 두고,
실수라면 Math.ceil()을 이용해 올림을 해주는 함수 solution을 완성해주세요.

function solution(num) {
  return Number.isInteger(num) ? num : Math.ceil(num);
}
console.log(solution(3)); // 3
console.log(solution(3.3)); // 4

Number.isInteger()는 주어지는 값이 정수인지 확인하는 메소드인데
수학을 오래 놨더니 기억이 흐려져서..^^
그냥 대충 소수점이 아닌 "수"를 이야기한다.

그래서 값은 정수라면 True를 뱉고, 정수가 아니라면 False를 뱉어준다.

위의 코드를 이렇게 해석할 수 있다.
if문이 아닌 삼항 조건 연산자라는 것을 사용했는데, 쉽게 말하면 코드 줄여쓰기
if문 보다 속도가 더 빠른 조건문이다.
찾아보니 삼항 연산자는 이거아님 저거임으로 두개만 가능한 줄 알았는데
속에 다양한 조건을 넣어서 사용하는 것을 보니 이것도 다음에는 알아봐야겠다.

아무튼! 조건문 ? true면 실행할것 : false면 실행할 것 이렇게 나눠지는데
Number.isInteger(num)이 true(정수)라면 수를 그대로 반환하고
Number.isInteger(num)가 false(정수가 아닌 수)라면 (Math.ceil) 올림수를 하여 값을 반환해준다.

그으런데.... 만약에 숫자가 아니라면 다른 값을 줘야하지않나?
숫자가 아니면 NaN (숫자아닌데ㅋ) 가 나오는데 나는 "숫자가 아닙니다" 를 보여주고 싶은데..?

조건은 맞는 것 같은데 왜 안대지? 왜 NaN

아 애초에 안되는게 맞구나
그렇군

profile
물류 서비스 Backend Software Developer

0개의 댓글