6. Infinity, NaN

Jeon seong jin·2020년 3월 15일
0

알고리즘

목록 보기
5/9

Infinity, NaN

문제

Assignment 1
Q : returnNaN 함수가 NaN값이 반환될 수 있도록 해주세요.

ex) 아래는 3+2 계산을 통해 5가 반환됩니다.
A :

function returnNaN(a) {
  if(isNaN(a)) {
      return NaN;
    }
}
returnNaN('2')

Assignment 2

Q : dutch 함수에서 더치페이를 계산하려고 합니다.
로직은 아래와 같습니다.

price / count

  • 인자는 숫자만 받는다고 가정.
  • 소수점으로 계산될 경우 소수점 2개까지 잘라주세요.(3번째 자리에서 반올림)
  • 계산 결과값이 Infinity일 경우 0 return해주세요.
function dutch(count,price) {
  let num = price / count;
  let result = Number(num.toFixed(2));
  
  if(result === Infinity) {
    return 0;
  }else {
    return result;
  }
}

풀이

Assignment 1

  • returnNaN의 인자를 "문자열" 2로 매개변수에 넘겨주고 조건문의 조건으로
    NaN인지 판별할 수 있는 함수인 isNaN()을 사용하여 a의 값이 NaN인 경우에 NaN을 반환하게 만든다.

Assignment 2

    1. 소수점으로 계산될 경우에 "특정 자리에" 값이 반올림이 되고 자를 수 있는 메서드를 알아봤다.
    1. [1]번에 맞는 조건의 함수가 있었다! toFixed() 를 사용면 된다.
    1. toFixed에 관한 MDN의 설명은 이러하다.
      - "toFixed()는 Number 객체를 주어진 digits 만큼의 소수점 이하 자리수를 정확하게 갖는 문자열 표현으로 반환합니다. 소수점 이하가 길면 숫자를 반올림하고, 짧아서 부족할 경우 뒤를 0으로 채울 수 있습니다. 메서드를 호출한 숫자의 크기가 1e+21보다 크다면 Number.prototype.toString()을 호출하여 받은 지수 표기법 결과를 대신 반환합니다."
    1. toFixed()를 사용한 함수의 반환값이 "string"타입으로 나오기에 Number()를 사용하여 "number"타입으로 변환하여 result값으로 할당하고 Infinity의 값이라면 0을 리턴을 하기에 조건문을 사용하여 값을 리턴하였다.
profile
-기록일지

0개의 댓글