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

Reply via email to