개발 노트

Js - infinity 본문

JavaScript

Js - infinity

알 수 없는 사용자 2023. 3. 16. 15:02

함수와 관련된 계산에 0으로 나누기 또는 0에 가까운 숫자가 포함될 때 함수 반환 값에 무한대가 나타날 수 있습니다. 이러한 경우 계산 결과가 정의되지 않거나 무한대에 가까워지는 경향이 있으며 함수는 이 조건을 나타내기 위해 Infinity의 특수 값을 반환합니다.

  const getFeedKg = (aniFeedCount, kg) => {
    let count = Number(aniFeedCount);
    console.log('aniFeedCount,kg', Number(aniFeedCount), kg);
    if (Number(aniFeedCount) === 0) {
      count = getCountPerKg(CONFIG_MC_STRUCT, kg);
      console.log('count', count);
    }
    let value = Math.round(kg / count)
    console.log('count,kg', );
    if ((count = 0)) return 0;
    return Math.round(kg / count);
  };

위의 함수는 리턴값에 1.22222222222......를 반환하기에 infinity를 반환하는데, 그래서 math.round나 tofixed()를 써봤지만 값에는 변함이 없었다.

const getFeedKg = (aniFeedCount, kg) => {
    let count = Number(aniFeedCount);
    console.log('aniFeedCount,kg', Number(aniFeedCount), kg);
    if (Number(aniFeedCount) === 0) {
      count = getCountPerKg(CONFIG_MC_STRUCT, kg);
    }
    let value = Math.round(kg / count)
    if ((count = 0)) return 0;
    return value;
  };

하지만 위처럼 변수에 담아서 리턴값에 할당해주니 1.2222222.....에 의한 infinity가 아닌 1이 잘 뜨게 되었다.