Tricky code - tricky result. Do you think php-5.1 result is perfect? :)
BTW the difference is in implementation of %G format specifier.
It seems, now it tries to produce the shortest string representation of
float (I cannot remember why), but this is not conformed to POSIX
specification
Linux man:
g,G The double argument is converted in style f or e (or F or E for
G conversions). The precision specifies the number of
signifi-
cant digits. If the precision is missing, 6 digits are
given;
if the precision is zero, it is treated as 1. Style e is
used
if the exponent from its conversion is less than -4 or
greater
than or equal to the precision. Trailing zeros are removed
from
the fractional part of the result; a decimal point appears
only
if it is followed by at least one digit.
Probably it should be fixed.
Thanks. Dmitry.
> -----Original Message-----
> From: Sebastian Nohn [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, April 17, 2007 10:16 PM
> To: Dmitry Stogov
> Cc: 'Thomas Weidner'; 'Antony Dovgal'; 'Zend Framework
> General'; [EMAIL PROTECTED]; [EMAIL PROTECTED]; [email protected]
> Subject: Re: [PHP-DEV] Re: [fw-general] Re: [PHP-DEV] ZF
> 0.8.0 Unit Tests behaving different on PHP 5.2.1 and PHP 5.2.2-dev
>
>
> Dmitry Stogov wrote:
>
> > It is bad practice to use echo $float or var_dump($float)
> because they
> > depends on php.ini settings. You should use printf() of
> > number_format() for deterministic result.
>
> <?php
> $a = 6900000000;
> $b = $a."";
> printf("%d", $a); echo "\n";
> printf("%d", $b); echo "\n";
> ?>
>
> PHP 5.2.1:
>
> -1689934592
> 2147483647
>
> PHP 5.2.2:
>
> -1689934592
> 6
>
> - Sebastian
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php