ID:               29620
 Updated by:       [EMAIL PROTECTED]
 Reported By:      benjcarson at digitaljunkies dot ca
-Status:           Open
+Status:           Bogus
 Bug Type:         Strings related
 Operating System: Linux
 PHP Version:      5CVS-2004-08-11 (dev)
 New Comment:

Sorry, but your problem does not imply a bug in PHP itself.  For a
list of more appropriate places to ask for help using PHP, please
visit http://www.php.net/support.php as this bug system is not the
appropriate forum for asking support questions. 

Thank you for your interest in PHP.

the money_format() function returns the exact same value as 
that of strfmon() without any modifications. Any unexpected 
output is likely to be a fault in glibc. 


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

[2004-08-11 20:56:49] benjcarson at digitaljunkies dot ca

Description:
------------
When using the format '%(n' (i.e. represent negative numbers in
parenthesis), money_format still prints out a negative sign when its
second parameter is 0.00*-1.   It works fine for the following values,
however:

-0.00
-0
0*-1
-1*0
-1*0.00
-1.00*0

(Note: echo(0.00*-1) prints out -0.)

Interestingly, using gcc-3.3.4 and glibc-2.3.2, the following fails in
a similar fashion:

strfmon(buf, sizeof(buf), "%(n", atof("-0.00"));
/* buf = "-0.00" */

double val = 0.00 * -1;
strfmon(buf, sizeof(buf), "%(n", val);
/* buf = "-0.00" */

double val = -1*0.00;
strfmon(buf, sizeof(buf), "%(n", val);
/* buf = "-0.00" */

It appears it might have something to do with strfmon()'s handling of
'negative zero', except money_format() works correctly for values where
strfmon() fails (e.g. -1*0.00).

Reproduce code:
---------------
echo money_format("%(n", 0.00*-1) . "\n";

Expected result:
----------------
0.00

or even

(0.00)

Actual result:
--------------
-0.00


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


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

Reply via email to