ID:               33581
 Updated by:       [EMAIL PROTECTED]
 Reported By:      todd at magnifisites dot com
-Status:           Open
+Status:           Bogus
 Bug Type:         Math related
 Operating System: Any
 PHP Version:      5.0.3
 New Comment:

Works fine with latest CVS. Please don't report bugs if you can't
reproduce them with the latest releases (including BETAs) and
preferrably also with latest CVS snapshot(s).


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

[2005-07-06 01:10:00] todd at magnifisites dot com

Description:
------------
abs() is returning zero (0) for a string representation of numbers
between (but not including) 0 and -1.

I realize that abs() operates on numeric values as opposed to strings
but this value is coming from an ODBC result set and yes, I tried
casting it to a numeric value first and it still returned the
unexpected result of zero (0).  Besides, the docs say it should work
this way
http://www.php.net/manual/en/language.types.string.php#language.types.string.conversion

This is tested and confirmed for PHP version 4.3.9, 4.3.10, 5.0.3 but
seems fixed in 5.0.4.  However, I could not find any documentation
noting so in the ChangeLogs nor in any bug reports.

Originally, the $row['AMOUNT'] variable was coming from an ODBC result
set which will return the value as type string according to a
var_dump().  We are able to simulate the same by casting the variable
as a number, then as a string to note the difference:

Reproduce code:
---------------
<pre>
<?php
// numeric value; this works:
$row['AMOUNT'] = -.94;
print abs($row['AMOUNT']) . "\n";
// string; these do not work:
$row['AMOUNT'] = '-.94';
print abs($row['AMOUNT']) . "\n";
print abs($row['AMOUNT'] + 0) . "\n";
$amount = $row['AMOUNT'] + 0;
print abs($amount) . "\n";
// string; this works:
$amount = (float) $row['AMOUNT'];
print abs($amount) . "\n";
?>
</pre>


Expected result:
----------------
0.94
0.94
0.94
0.94
0.94

Actual result:
--------------
0.94
0
0
0
0.94


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


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

Reply via email to