ID: 36493 Updated by: [EMAIL PROTECTED] Reported By: terrafrost at gmail dot com -Status: Assigned +Status: Wont fix Bug Type: Math related Operating System: Linux PHP Version: 5.1.2, 4.4.2 Assigned To: tony2001 New Comment:
The solution is actually quite simple - you should check if the numbers are still finite, because one infinity is not equal to another infinity and comparing them with < or > is pointless. See the code below: <?php $x = 2; $y = 1; for ($bits=1; ($x*=2) > ($y*=2) && is_finite($x) && is_finite($y); $bits++); echo $bits; ?> Previous Comments: ------------------------------------------------------------------------ [2006-02-23 07:11:16] terrafrost at gmail dot com Description: ------------ I've ran into some difficulty attempting to figure out what the maximum size of the exponent in floats is. Reproduce code: --------------- <? $x = 2; $y = 1; for ($bits=1; ($x*=2) > ($y*=2); $bits++); echo $bits; ?> Expected result: ---------------- Assuming php.net's statement about the 64-bit IEEE standard being the most common representation of float, I'd expect to get 1024 as the result. Actual result: -------------- On Windows, I do indeed get the correct result. On Linux, all I get are timeout errors. I've tried it with both PHP4 and PHP5 and get the same results for each. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=36493&edit=1