Book HomePHP CookbookSearch this book

2.8. Taking Logarithms

2.8.1. Problem

You want to take the logarithm of a number.

2.8.2. Solution

For logs using base e (natural log), use log( ):

$log = log(10);          // 2.30258092994

For logs using base 10, use log10( ):

$log10 = log10(10);      // 1

For logs using other bases, use pc_logn( ):

function pc_logn($number, $base) {
    return log($number) / log($base);
}

$log2  = pc_logn(10, 2); // 3.3219280948874

2.8.3. Discussion

Both log( ) and log10( ) are defined only for numbers that are greater than zero. The pc_logn( ) function uses the change of base formula, which says that the log of a number in base n is equal to the log of that number, divided by the log of n.

2.8.4. See Also

Documentation on log( ) at http://www.php.net/log and log10( ) at http://www.php.net/log10.



Library Navigation Links

Copyright © 2003 O'Reilly & Associates. All rights reserved.