개요
PHP의 log1p() 함수는 log(1 + 숫자) 값을 반환하는 수학 함수입니다. 일반적으로 log(1+x)를 직접 계산하면 x가 0에 매우 가까울 때 부동소수점 연산으로 인해 정밀도가 크게 떨어지지만, log1p() 함수는 내부적으로 최적화되어 있어 x 값이 0에 가깝더라도 높은 정확도로 결과를 계산할 수 있습니다.
이러한 특성 덕분에 금융 계산, 과학 데이터 처리처럼 작은 값의 정밀도가 중요한 분야에서 유용하게 활용됩니다.
문법
log1p(val)
매개변수
val − 로그를 계산할 대상이 되는 지정된 숫자입니다.
반환값
log(1 + val)의 결과값을 반환합니다. val이 0에 가까운 작은 값일 때도 정확도가 유지됩니다.
예제 1
기본적인 사용 예시입니다.
<?php
echo(log1p(1));
?>
출력
0.69314718055995
log(1 + 1), 즉 log(2)의 자연로그 값이 출력됩니다.
예제 2
입력값이 0인 경우입니다.
<?php
echo(log1p(0));
?>
출력
0
log(1 + 0) = log(1) = 0이므로 결과는 0입니다.
예제 3
여러 개의 값을 한 번에 계산해 보겠습니다.
<?php
echo(log1p(10));
echo(log1p(2.7));
?>
출력
2.39789527279841.3083328196502
첫 번째 값은 log(11) = 2.3978952727984이고, 두 번째 값은 log(3.7) = 1.3083328196502입니다.
마무리
log1p() 함수는 단순히 log(1+x)를 계산하는 것을 넘어, 작은 입력값에서도 정확도를 보장한다는 점이 핵심 장점입니다. 소수점 이하의 미세한 값 차이가 중요한 프로그램이라면, log(1+$x) 방식 대신 log1p($x)를 사용하는 것이 좋습니다.