Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 소수를 올림한 가장 가까운 정수를 반환하는 Math.ceil 직접 구현하기

문제

이번 글에서는 JavaScript의 Math 클래스에 속하는 함수를 직접 작성해 보겠습니다.

이 함수는 호출될 때 전달받은 소수(십진수)보다 큰 가장 가까운 정수, 즉 올림 값을 반환해야 합니다.

만약 전달된 숫자가 이미 정수라면, 그 숫자를 그대로 반환하면 됩니다.

예제 코드

다음은 해당 기능을 구현한 코드입니다 -

const num = 234.56;
Math.ceil = function(num){
    if(typeof num !== 'number'){
        return NaN;
    };
    if(num % 1 === 0){
        return num;
    };
    const [main] = String(num).split('.');  
    return +main + 1;
};
console.log(Math.ceil(num));

출력 결과

다음은 콘솔 출력 결과입니다 -

235

코드 동작 원리

위 코드의 작동 방식을 단계별로 살펴보겠습니다.

  • 타입 검사: 전달된 값이 숫자 타입이 아니면 NaN을 반환합니다.
  • 정수 판별: num % 1 === 0 조건으로 나머지가 없으면 이미 정수이므로 그대로 반환합니다.
  • 올림 처리: 숫자를 문자열로 변환한 뒤 소수점(.)을 기준으로 분리하여 정수 부분만 추출하고, 여기에 1을 더해 올림 값을 계산합니다.

결과적으로 234.56은 정수 부분 234에 1을 더한 235가 출력됩니다.

참고 사항

위 구현은 양수를 기준으로 작성되었습니다. 음수까지 완벽하게 지원하려면 부호를 고려한 별도의 처리가 필요합니다. 예를 들어 -234.56의 올림 값은 -234이며, 표준 내장 메서드인 Math.ceil()은 이러한 경우까지 정확하게 처리해 줍니다.