Bug #10437 Updated: casting is not consistent
| From: | zeev@php.net | Date: | Mon, 13 Aug 2001 00:24:55 +0000 |
| Subject: | Bug #10437 Updated: casting is not consistent | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-63033@lists.php.net to get a copy of this message | ||
ID: 10437
Updated by: zeev
Reported By: goba@php.net
Old Status: Analyzed
Status: Closed
Bug Type: Scripting Engine problem
Operating System: win2k
PHP Version: 4.0.4pl1
New Comment:
Fixed in the CVS (will be a part of 4.0.7).
Thanks for the bug report!
Previous Comments:
------------------------------------------------------------------------
[2001-05-19 17:42:44] jeroen@php.net
From line 117 of zend_operators.c it says: If the string is nor an exact double, nor an exact long,
do strtol on it.
There you should first try strtod, see if it parses more chars that strtol...
And I don't know anything about C!
------------------------------------------------------------------------
[2001-05-19 17:22:30] jeroen@php.net
Strange indeed.
There are explicit casts (either to double or to int)
and implicit casts.
You can view upon the latter one as a (number) cast,
it casts to a number, maybe int, maybe float.
In that cast strings like '5.31abc' are not detected as double, (invaled numbers after the
dot) so integer parsing takes place, which yields the int 5.
This should be corrected in Zend.
------------------------------------------------------------------------
[2001-04-22 04:06:03] goba@php.net
Casting is not consistent with doubles:
$foo = "5.31abc";
$foo2 = (double) $foo;
$foo3 = $foo + 0;
The first gives 5.31 the second gives 5,
although it should notice the full 5.31 number
in the string.
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=10437&edit=1