ID:               46145
 Comment by:       ilia dot cheishvili at gmail dot com
 Reported By:      lbayuk at pobox dot com
 Status:           Open
 Bug Type:         Strings related
 Operating System: Linux
 PHP Version:      5.2.6
 New Comment:

The patch to fix this is here, along with all of the unit tests that
had to be modified to take the new, correct behavior into account:
http://pastebin.com/f641cf6fd


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

[2008-09-21 19:44:25] lbayuk at pobox dot com

Description:
------------
PHP printf, sprintf, and fprintf with %e scientific notation produce a
1 digit exponent for values less than 1e10.  Other implementation of
functions by the same name produce a minimum of 2 digits in the
exponent, as the C standard requires. Although it can be argued that PHP
is not bound by other standards, the following comment in
main/snprintf.c function php_conv_fp() [line 545] leads one to believe
this is a PHP bug:
            /*
             * Make sure the exponent has at least 2 digits
             */


Reproduce code:
---------------
<?php
printf("%8.2e\n", 1000000);


Expected result:
----------------
1.00e+06

Actual result:
--------------
<space>1.00e+6


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


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

Reply via email to