Antony Dovgal wrote: > On 04/17/2007 10:16 PM, Sebastian Nohn wrote: >> 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.""; <-------------- that's the very same mistake > printf("%d", $a); echo "\n"; > printf("%d", $b); echo "\n"; > ?> > > You're converting float to string and THEN trying to output as integer. > My patch returns the old behaviour, though you're code is still wrong. > >> PHP 5.2.2: >> >> -1689934592 >> 6 > > #php -r 'printf("%d", 6900000000);' > -1689934592 > > #php -r 'printf("%d", "6900000000");' > 2147483647 > > #php -v > PHP 5.2.2RC1 (cli) (built: Apr 16 2007 10:01:11)
$ ./php -v PHP 5.2.2RC2-dev (cli) (built: Apr 17 2007 20:12:31) $ cat ~/test.php <?php $a = 6900000000; $b = "6900000000"; $c = $a.""; $d = (string)$a; printf("%d", $a); echo "\n"; printf("%d", $b); echo "\n"; printf("%d", $c); echo "\n"; printf("%d", $d); echo "\n"; ?> sh-3.1$ ./php ~/test.php -1689934592 2147483647 6 6 Best regards, Sebastian Nohn -- Sebastian Nohn · Wolfstraße 29 · 53111 Bonn · Germany +49-170-4718105 · http://nohn.net/ · [EMAIL PROTECTED] http://pgpkeys.pca.dfn.de:11371/pks/lookup?op=get&fingerprint=on&search=0xD47D55E0 -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php