On 1/09/2011, at 8:43 PM, magic-...@damage.devloop.de wrote:

> Simon J Welsh writes: 
>> On 1/09/2011, at 9:53 AM, magic-...@damage.devloop.de wrote: 
>>> Am Mittwoch, 31. August 2011, 20:48:37 schrieb Shawn McKenzie:
>>>> On 08/31/2011 09:03 AM, magic-...@damage.devloop.de wrote:
>>>>> var_dump((float)"8315e839da08e2a7afe6dd12ec58245d");
>>>>> results in float(INF)
>>>> 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.
>>> If I use a string in PHP I don't want PHP to cut this string. Either it 
>>> uses this string as it is or it gives me an error/warning/false (what 
>>> ever...). But silently(!!!) using a small piece of a string is not 
>>> understandable.
>> The manual clearly states this is how a string is converted into a number: 
>> http://php.net/manual/en/language.types.string.php#language.types.string.conversion
>>  "The value is given by the initial portion of the string. If the string 
>> starts with valid numeric data, this will be the value used. Otherwise, the 
>> value will be 0 (zero). Valid numeric data is an optional sign, followed by 
>> one or more digits (optionally containing a decimal point), followed by an 
>> optional exponent. The exponent is an 'e' or 'E' followed by one or more 
>> digits." If you don't want the string turned into a number using the 
>> documented method, don't use it as one.
> 
> Ok, then let's discuss the documented behavior ;-) 
> Do you (not the document) really like this behavior? I mean if I am the only 
> one wondering about that behavior it is ok for me. I just want to help PHP. 
> cheers
> Daniel

Yes, I think the way it works is correct.

It follows similar conversions when changing from a data type that allows more 
data to one that allows less. Similar things happen when converting from a 
floating point to integral value.

It also directly correlates to the C functions for doing the same thing (atof, 
strtod, the like).
---
Simon Welsh
Admin of http://simon.geek.nz/


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to