#36493 [Asn->WFx]: Unable to determine maximum floating point b
ID: 36493
Updated by: tony2001@php.net
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
Thread (3 messages)