Edit report at http://bugs.php.net/bug.php?id=53865&edit=1
ID: 53865 Comment by: abc at abc dot abc Reported by: dmitrij at stepanov dot lv Summary: (float)0 * -1 = minus zero (-0) Status: Bogus Type: Bug Package: Scripting Engine problem Operating System: Windows 7 PHP Version: 5.3.5 Block user comment: N Private report: N New Comment: Oracle went crapping all over the Sun website a few months ago and broke tons of links. PHP bug reviewers give so little attention to each bug that they're still giving template replies to each bogus float bug with the same broken link. The correct answer to your problem is that this is a feature of the (IEEE 754) floating-point format. It supports positive and negative zero. The example you gave is behaving exactly as it should. Previous Comments: ------------------------------------------------------------------------ [2011-01-28 11:33:54] dmitrij at stepanov dot lv I guess the link should be http://en.wikipedia.org/wiki/IEEE_754 ------------------------------------------------------------------------ [2011-01-28 11:23:02] der...@php.net Floating point values have a limited precision. Hence a value might not have the same string representation after any processing. That also includes writing a floating point value in your script and directly printing it without any mathematical operations. If you would like to know more about "floats" and what IEEE 754 is, read this: http://docs.sun.com/source/806-3568/ncg_goldberg.html Thank you for your interest in PHP. . ------------------------------------------------------------------------ [2011-01-28 10:03:40] dmitrij at stepanov dot lv Description: ------------ See test script. Test script: --------------- var_dump( (float)0 * -1); Expected result: ---------------- float(0) Actual result: -------------- float(-0) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=53865&edit=1