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상수를 사용하면 간결하게 표현할 수 있습니다.