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]; internals@lists.php.net > 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