Re: Bug #51739 tricky string to float conversion
| From: | Shawn McKenzie | Date: | Wed, 31 Aug 2011 18:48:37 +0000 |
| Subject: | Re: Bug #51739 tricky string to float conversion | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-314683@lists.php.net to get a copy of this message | ||
On 08/31/2011 09:03 AM, magic-php@damage.devloop.de wrote:
> Hi,
> I have opend Bug #51739 in 2010. It was closed as bogus before my last
> question was answered. It would be fine to know what you think about
> that bug.
> In short:
> var_dump((float)"8315e839da08e2a7afe6dd12ec58245d");
> results in float(INF)
> This is because "8315" is treated as base and
> "e839da08e2a7afe6dd12ec58245d" is treated as an exponent. My hint that
> "e839da08e2a7afe6dd12ec58245d" is not a valid exponent was not answered.
> What do you think about?
> cheers
> Daniel
The cast to float is truncating the invalid characters and since your
string contains a float that is INF (8315e839) before the truncation at
the "d", then it returns INF. Makes perfect sense.
--
Thanks!
-Shawn
http://www.spidean.com