Re: Dumb Question - Casting

From: Date: Thu, 18 Feb 2010 16:04:19 +0000
Subject: Re: Dumb Question - Casting
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-302177@lists.php.net to get a copy of this message
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


« previous php.general (#302177) next »