본문으로 바로가기

[JavaScript] 자바스크립트 소수점 만들기, 소수점 절대값

자바스크립트에서 소수점 만드는 방법은 크게 어렵지 않다. 간단하게 소수점을 나타내는 방법과 소수점을 나타낼 때, 소수점자리 반올림을 하지 않고 값을 계산하는 방법을 알아보자. 더 자세한 내용이 궁금하면 해당 링크에 접속하여 읽어보자.

소수점 나타내는 toFixed 함수

toFixed 함수를 사용하면 손쉽게 소수점을 만들 수 있다. 여기서 중요한 점은 toFixed 함수는 문자열에 사용하는 것이 아닌 숫자에 사용하여야 한다. String.prototype이 아닌 Number.prototype에 있다. 그리고 반환 값은 Number가 아닌 String 타입이다.

사용하는 방법은 매우 간단하다. 숫자.toFixed(원하는 소수점 자리) 와 같이 작성하면 된다. 아래 예시를 참고해보자.

const number = 12345.6789;

console.log(number.toFixed());  // “12346” 소수점 1의 자리에서 반올림
console.log(number.toFixed(2)); // “12345.68” 소수점 3의 자리에서 반올림
console.log(number.toFixed(6)); // “12345.678900” 빈 공간은 0으로 채워짐

반올림 없는 소수점 표현하기

위 toFixed 함수를 사용하게 되면 마지막 소수점 자리에서 반올림을 하게 된다. 사용자는 반올림 없이 소수점만 표시하기를 원할 수도 있다. 아래 간단한 함수를 만들었다. (틀린 예시가 나올 수도 있음)

위 함수는 인자 1번에 원하는 숫자를 string, number 자료형 상관 없이 넣어주면 되고, 2번째 인자에는 나타내고 싶은 소수점 자리를 넣으면 반올림 없이 딱 해당 자리에 끊어서 보여준다.

const getNotRoundDecimalNumber = (number, decimalPoint = 2) => {
  let num = typeof number === "number" ? String(number) : number;
  const pointPos = num.indexOf(".");

  if (pointPos === -1) return Number(num).toFixed(decimalPoint);

  const splitNumber = num.split(".");
  const rightNum = splitNumber[1].substring(0, decimalPoint);
  return Number(`${splitNumber[0]}.${rightNum}`).toFixed(decimalPoint);
};

console.log(getNotRoundDecimalNumber(100.0127, 3));	// 100.012
console.log(getNotRoundDecimalNumber(100.0127, 6));	// 100.012700
console.log(getNotRoundDecimalNumber(100, 6));		// 100.000000
console.log(getNotRoundDecimalNumber(100));		// 100.00

결론

JavaScript 소수점 구하는 방법을 알아보았다. 반올림 없는 소수점 표현하기는 틀린 부분이 있을 수도 있으니 참고만 하자.

마지막

해당 내용은 틀릴 수도 있다는 것을 감안하여 봐주세요. 틀린 내용 및 오탈자 수정 요청 환영입니다.

반응형