#43487 [Opn->Bgs]: Wrong conversion of float to string
| From: | johannes@php.net | Date: | Mon, 03 Dec 2007 18:16:45 +0000 |
| Subject: | #43487 [Opn->Bgs]: Wrong conversion of float to string | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-120336@lists.php.net to get a copy of this message | ||
ID: 43487
Updated by: johannes@php.net
Reported By: jm at wo dot cz
-Status: Open
+Status: Bogus
Bug Type: Strings related
Operating System: Linux
PHP Version: 5.2.5
New Comment:
Floating point values have a limited precision. Hence a value might
not have the same string representation after any processing. That also
includes writing a floating point value in your script and directly
printing it without any mathematical operations.
If you would like to know more about "floats" and what IEEE
754 is read this:
http://docs.sun.com/source/806-3568/ncg_goldberg.html
Thank you for your interest in PHP.
.
Previous Comments:
------------------------------------------------------------------------
[2007-12-03 16:53:25] jm at wo dot cz
Description:
------------
Some float numbers are incorrectly converted to string values:
I found it by playing with eval and getting wrong results. Then I did:
echo floatval('3.86e-6'); // output: 3.86E-6
echo floatval('1.01e-6'); // output: 1.01E-6
But
echo floatval('1E-6'); // output: :.0E-7
But one can do:
$f=1E-6;
echo $f; // output: .0E-7
So it must be a problem with float to string conversion.
Reproduce code:
---------------
$f=1E-6;
echo $f; // output: :.0E-7
Expected result:
----------------
1.0E-6
Actual result:
--------------
:.0E-7
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=43487&edit=1