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

Reply via email to