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)

--
Wbr, Antony Dovgal

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to