You are going beyond the number of significant digits PHP can handle so it is truncating beyond that. In the second case it look sstrange, the 12305 ending, but it is probably a 'round' number if you put it in binary, but it turns funny when converted to decimal. In the last example, the precision does not even reach the decimal part.

----- Original Message ----- From: "Chris Boget" <[EMAIL PROTECTED]>
To: <php-general@lists.php.net>
Sent: Tuesday, April 18, 2006 5:19 PM
Subject: [PHP] sprintf() oddity


What's going on here:

$number = 5000000000.1234567890;
echo sprintf( '%.05f', $number );

result: 5000000000.12346

$number = 5000000000000.1234567890;
echo sprintf( '%.05f', $number );

result: 5000000000000.12305

$number = 5000000000000000.1234567890;
echo sprintf( '%.05f', $number );

result: 5000000000000000.00000

Why isn't it formatting the decimals properly? And apparently losing
some?

Running PHP 4.3.11 on Windows Server 2003 box.

thnx,
Chris

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to