Re: [PHP] Dumb Question - Casting

[email protected] (Joseph Thayne)
Newsgroups php.general
Message-ID <[email protected]>
According to the PHP manual using the same expression, "Never cast an 
unknown fraction to integer, as this can sometimes lead to unexpected 
results".  My guess is that since it is an expression of floating 
points, that the result is not quite 8 (for whatever reason).  
Therefore, it is rounded towards 0.  Of course, that is only a guess, 
and I have no true documentation on it.

Ashley Sheridan wrote:
> On Thu, 2010-02-18 at 09:47 -0600, Chuck wrote:
>
>   
>> Sorry, been doing heavy perl and haven't written any PHP in 3 years so a tad
>> rusty.
>>
>> Can someone explain why the second expression in this code snippet evaluates
>> to 7 and not 8?
>>
>> $a = (int) (0.1 +0.7);
>>
>> echo "$a\n";
>>
>> $x = (int) ((0.1 + 0.7) * 10);
>>
>> echo "$x\n";
>>
>> $y = (int) (8);
>>
>> echo "$y\n";
>>     
>
>
> It works as expected if you take out the int() parts in each line. I'm
> not sure why, but the use of int() seems to be screwing around with the
> results. That's why the first line outputs a 0.
>
> Thanks,
> Ash
> http://www.ashleysheridan.co.uk
>
>
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.