For Programmers: Free Programming Magazines  


Home > Archive > PHP Questions and Answers > April 2007 > Re: [PHP-DEV] Re: [fw-general] Re: [PHP-DEV] ZF 0.8.0 Unit Tests









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author Re: [PHP-DEV] Re: [fw-general] Re: [PHP-DEV] ZF 0.8.0 Unit Tests
Sebastian Nohn

2007-04-17, 6:57 pm

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
Antony Dovgal

2007-04-17, 6:57 pm

On 04/17/2007 10:16 PM, Sebastian Nohn wrote:
> Dmitry Stogov wrote:
>

<?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.
[color=darkred]
> 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
Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com