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

JavaScript Math.log()에서 밑(base)을 지정하는 방법

JavaScript의 Math.log() 메서드는 기본적으로 자연로그, 즉 밑이 e(약 2.718)인 로그 값을 반환합니다. 따라서 다른 밑을 가진 로그를 계산하려면 밑 변환 공식을 활용해야 합니다.

밑 변환 공식이란?

수학적으로 로그의 밑을 변경하는 공식은 다음과 같습니다.

log_b(x) = log(x) / log(b)

즉, 원하는 밑 b에 대한 로그 값은 자연로그를 이용해 Math.log(x) / Math.log(b)로 계산할 수 있습니다.

상용로그(밑이 10) 구하기

특히 밑이 10인 상용로그를 구할 때는 Math.LN10 상수를 사용하면 편리합니다. Math.LN10은 10의 자연로그 값(약 2.302585)을 미리 정의해 둔 상수입니다.

다음 예제는 Math.log(100)Math.LN10으로 나누어 밑이 10인 로그 값을 구하는 코드입니다.

예제 코드

<html>
   <head>
      <title>JavaScript Math log() Method</title>
   </head>
   <body>
      <script>
         var value = Math.log(100)/Math.LN10;
         document.write("Value : " + value );
      </script>
   </body>
</html>

실행 결과

Value : 2

100의 상용로그는 2이므로, 위 코드는 정확히 2를 출력합니다.

임의의 밑을 지정하는 범용 함수

밑이 10뿐만 아니라 2, 5 등 임의의 숫자를 밑으로 사용하고 싶다면 아래와 같이 재사용 가능한 함수를 만들어 활용할 수 있습니다.

function logBase(value, base) {
   return Math.log(value) / Math.log(base);
}

console.log(logBase(8, 2));   // 3
console.log(logBase(100, 10)); // 2

정리

  • Math.log()는 항상 자연로그(밑 e)를 반환합니다.
  • 다른 밑이 필요하면 Math.log(x) / Math.log(base) 형태로 나누어 계산합니다.
  • 밑이 10일 경우 Math.LN10 상수를 사용하면 간결하게 표현할 수 있습니다.