Edit report at http://bugs.php.net/bug.php?id=53045&edit=1
ID: 53045 Updated by: ras...@php.net Reported by: remy at wh dot nl Summary: broken result of intval() Status: Open Type: Bug Package: *Math Functions Operating System: FreeBSD PHP Version: 5.2.14 Block user comment: N New Comment: Only a problem on 32-bit systems I assume? I can't reproduce it here, but all my stuff is 64-bit. Previous Comments: ------------------------------------------------------------------------ [2010-10-12 18:34:15] remy at wh dot nl Description: ------------ intval(log(8,2)) gives 2 as result, expected 3 Test script: --------------- <?php $maxrounds = log(8, 2); echo 'test:'.$maxrounds."\n"; echo 'test:'.log(8,2)."\n"; echo 'intval:'.intval(3.0000)."\n"; echo 'intval:'.intval(log(8,2))."\n"; echo 'intval:'.intval($maxrounds)."\n"; echo 'intval+1:'.(intval($maxrounds)+1)."\n"; echo 'intval+1:'.intval($maxrounds+1)."\n"; echo 'intval+1:'.intval($maxrounds + 1)."\n"; echo 'sprintf dec:'.sprintf('%d', $maxrounds)."\n"; echo 'sprintf float:'.sprintf('%f', $maxrounds)."\n"; echo 'sprintf float non-locale:'.sprintf('%F', $maxrounds)."\n"; var_dump($maxrounds)."\n"; ?> Expected result: ---------------- test:3 test:3 intval:3 intval:3 intval:3 intval+1:4 intval+1:4 intval+1:4 sprintf dec:3 sprintf float:3.000000 sprintf float non-locale:3.000000 float(3) Actual result: -------------- test:3 test:3 intval:3 intval:2 intval:2 intval+1:3 intval+1:3 intval+1:3 sprintf dec:2 sprintf float:3.000000 sprintf float non-locale:3.000000 float(3) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=53045&edit=1