Edit report at https://bugs.php.net/bug.php?id=63476&edit=1

 ID:                 63476
 Updated by:         [email protected]
 Reported by:        ringtail dot jack at gmail dot com
 Summary:            Unexpected output when using log() function results
-Status:             Open
+Status:             Not a bug
 Type:               Bug
 Package:            Math related
 Operating System:   Linux Mint 11
 PHP Version:        5.3.18
 Block user comment: N
 Private report:     N

 New Comment:

Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

log result is a float here. float is not accurate


Previous Comments:
------------------------------------------------------------------------
[2012-11-09 20:55:58] ringtail dot jack at gmail dot com

Description:
------------
Using the modulus operator with the results of a call to log(N, 10) produces 
unexpected results when N % 3 = 0.

Other arithmetic operations result as expected.

Equivalent operations using a call to log10(N) rather than log(N, 10) result as 
expected.

Using echo to display log() results will display the correct value. However, 
passing it through printf or sprintf will print or return the correct value 
minus 1.

[ Note: phpinfo() on my computer reports a PHP version of 5.3.5-1ubuntu7.11. I 
selected what seemed to be the closest version available in the web form. ]

Test script:
---------------
$exp = 15;
$n = pow(10, $exp);
$base = 10;
$log = log($n, $base);
echo "log: ".$log."\n";
echo "log % 3: ".$log % 3 ."\n";
echo "log via sprintf: ".sprintf('%d', $log)."\n";
$log = log10($n);
echo "log10: ".$log."\n";
echo "log10 % 3: ".$log % 3 ."\n";
echo "log10 via sprintf: ".sprintf('%d', $log)."\n";

Expected result:
----------------
log: 15
log % 3: 0
log via sprintf: 15
log10: 15
log10 % 3: 0
log10 via sprintf: 15

Actual result:
--------------
log: 15
log % 3: 2
log via sprintf: 14
log10: 15
log10 % 3: 0
log10 via sprintf: 15


------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=63476&edit=1

Reply via email to