본문 바로가기
JS/함수(Function)

특정 소수점 자리만 표현하는 함수 : Truncate

by 윤숩 2024. 1. 30.
728x90
728x90

쇼핑몰 결제 및 가격제안 처리 하는 부분에서 소수점 문제가 발생함

자바스크립트의 Float 사용하면 반올림 문제가 생길 수 있어서 잘라버리기로 결정

또한, 코인 결제 시스템이 붙으면 소수점 역할이 중요하기 때문에 함수 개발하기로 결정

 

const  truncateNumber = (value, decimalPlaces) => {
    const multiplier = Math.pow(10, decimalPlaces);
    return Math.floor(value * multiplier) / multiplier;
}

 

- 화살표 함수 방식 사용

- 'value'와 'decimalPlaces'라는 두 개의 매개변수

 ->  'value'는 잘라낼 대상이 되는 숫자

 ->  'decimalPlaces'는 소수점 이하 몇 번째 자리에서 잘라낼지를 나타내는 숫자

- const multiplier = Math.pow(10, decimalPlaces);

 -> 10을 'decimalPlaces'만큼 제곱하여 'multiplier'라는 상수에 저장

 ->  'value'를 'decimalPlaces'만큼의 자릿수로 올림하기 위한 준비 단계

- return Math.floor(value * multiplier) / multiplier;

 -> 'value'에 'multiplier'를 곱한 후, Math.floor 함수를 사용하여 소수점 아래를 모두 버린 후 다시 'multiplier'로 나누어 원래의 자릿수로 되돌림. 

 ->  결과 'value'는 'decimalPlaces'에서 정한 소수점 자리에서 잘라내어 반환

 

truncateNumber(1.2345, 2);

// 결과 = '1.23'

 

728x90
728x90

댓글