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

JavaScript로 숫자의 소수점 이하 부분만 추출하는 방법

문제 상황

숫자를 인자로 받아 소수점(.) 뒤에 오는 부분만 추출하여 반환하는 자바스크립트 함수를 작성해야 합니다. 예를 들어, 435.43436이라는 숫자가 입력되면 함수는 0.43436을 반환해야 합니다.

해결 코드

다음은 문자열 변환과 분할을 활용한 해결 방법입니다 −

const num = 435.43436;
const retrieveDecimalPart = (num = 1) => {
    const str = String(num);
    let [_, decimal] = str.split('.');
    const divisor = Math.pow(10, decimal.length)
    decimal = +decimal;
    return decimal / divisor;
};
console.log(retrieveDecimalPart(num));

출력 결과

코드를 실행하면 콘솔에 다음과 같은 결과가 출력됩니다 −

0.43436

코드 동작 원리

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

  1. 문자열 변환: String(num)을 사용해 숫자를 문자열로 변환합니다.
  2. 소수점 기준 분할: split('.') 메서드로 정수부와 소수부를 분리합니다. 구조 분해 할당을 통해 소수부만 변수에 담습니다.
  3. 나눗셈 준비: Math.pow(10, decimal.length)로 소수부 자릿수만큼 10의 거듭제곱 값을 구합니다.
  4. 결과 계산 및 반환: 소수부를 숫자로 변환한 뒤 위에서 구한 값으로 나누어 최종 결과를 반환합니다.

예를 들어, 소수부가 "43436"이면 자릿수는 5이므로 43436 ÷ 10⁵(=100000)를 계산하여 0.43436을 얻게 됩니다. 이 방법은 간단하고 직관적이어서 다양한 소수 형태의 숫자에 손쉽게 적용할 수 있다는 장점이 있습니다.