Bug #54842 [Opn->Bgs]: ceil yields a negative zero
Edit report at http://bugs.php.net/bug.php?id=54842&edit=1
ID: 54842
Updated by: rasmus@php.net
Reported by: php at maisqi dot com
Summary: ceil yields a negative zero
-Status: Open
+Status: Bogus
Type: Bug
Package: *Math Functions
Operating System: Windows XP32
PHP Version: 5.3.6
Block user comment: N
Private report: N
New Comment:
This is not a bug. All floating point operations is done using IEEE-754
and both
positive and negative 0 exists. You can read more about it here.
http://en.wikipedia.org/wiki/Signed_zero
You can add 0 to your result to make it never show -0 if you like.
eg. 0+ceil(...)
Previous Comments:
------------------------------------------------------------------------
[2011-05-18 17:24:03] php at maisqi dot com
Description:
------------
When doing some math with dates and "ceiling" the result, I got a
negative zero!
I don't understand how that can be, so I presume it's an error.
Test script:
---------------
<?php
$dt = mktime (0, 0, 0, 5, 18, 2011);
$base = mktime (16, 16, 0, 5, 18, 2011);
echo 'dt: ', date ('Y-m-d', $dt), '<br />';
echo 'base: ', date ('Y-m-d', $base), '<br />';
echo '<br />';
echo 'dt - base: <strong>', ceil (($dt - $base) / 86400),
'</strong>';
?>
<br /><br />
It outputs "-0" on PHP 5.3.6, under Windows XP 32 bits
Expected result:
----------------
The bolded text should be "0" (zero)
Actual result:
--------------
The bolded text is "-0" (negative zero)
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=54842&edit=1
Thread (2 messages)