ID:               40482
 Updated by:       [EMAIL PROTECTED]
 Reported By:      [EMAIL PROTECTED]
-Status:           Open
+Status:           Closed
 Bug Type:         Documentation problem
 Operating System: Linux 2.6.20
 PHP Version:      5.2.1
 New Comment:

This bug has been fixed in the documentation's XML sources. Since the
online and downloadable versions of the documentation need some time
to get updated, we would like to ask you to be a bit patient.

Thank you for the report, and for helping us make our documentation
better.

"The precision specifier stands for the number of digits after the
decimal point since PHP 5.2.1. In earlier versions, it was taken as
number of significant digits (one less)."

Example fixed too.


Previous Comments:
------------------------------------------------------------------------

[2007-02-15 10:48:32] [EMAIL PROTECTED]

You could see the the number as the precision of the output number. You
normally won't ever get more then one digit in front of the decimal
point with scientific notation. Even PHP 5.2.1 acts like this:

# php -r 'var_dump( sprintf( "%2.3e", 5555555555 ) );'
string(8) "5.556e+9"

If you still do not want to change the behavior back to the old one,
the new behavior should be documented:

http://de3.php.net/manual/en/function.sprintf.php Example #2308 still
shows the old behavior. In this case feel free to change the bugs
category to a documentation bug.

------------------------------------------------------------------------

[2007-02-14 12:49:04] [EMAIL PROTECTED]

That was actually a bugfix.
sprintf( "%.3e", 0.0000234 );
          ^^^^ it's "3 digits after the floating point"

string(8) "2.340e-5"
             ^^^ 3 digits, not 2. 

------------------------------------------------------------------------

[2007-02-14 12:44:18] [EMAIL PROTECTED]

Description:
------------
There is no real category for sprintf() or string functions issues, I
hope the selected one fits the issue.

Between PHP 5.2.1 RC1 and PHP 5.2.1 the resulting output with the
format specifier "e" changed. All PHP version prior to 5.2.1 tested by
me have the same result as PHP 5.2.0.

Even the tests were changed to reflect this new behavior:
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/sprintf_f_2.phpt?r1=1.1.2.3&r2=1.1.2.4

Reproduce code:
---------------
$ php -r 'var_dump( sprintf( "%.3e", 0.0000234 ) );'

Expected result:
----------------
string(7) "2.34e-5"

Actual result:
--------------
string(8) "2.340e-5"


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=40482&edit=1

Reply via email to