ID:               29732
 Updated by:       [EMAIL PROTECTED]
 Reported By:      robinmessag at hotmail dot com
-Status:           Open
+Status:           Closed
 Bug Type:         Documentation problem
 Operating System: Windows 98SE
 PHP Version:      Irrelevant
 New Comment:

This bug has been fixed in the documentation's XML sources. Since the
online and downloadable versions of the documentation need some time
to get updated, we would like to ask you to be a bit patient.

Thank you for the report, and for helping us make our documentation
better.

"Remainder $a % $b is negative for negative $a."


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

[2004-08-21 17:06:29] robinmessag at hotmail dot com

I have since found Bug number #22527 which has some proper details on
the workings of the % operator and the reasons behind it returning
negative numbers.
I have changed the category to documentation problem.

Could I suggest changed to the documentation to indicate % gives the
remainder from division, not the modulus which should always positive
and also a note that this can give negative results.

I'm sorry this sounds like a petty thing but I have been caught out
more than once by this behaviour which is at best an undocumented
quirk.

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

[2004-08-18 14:47:53] [EMAIL PROTECTED]

What was the previous bug number?

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

[2004-08-18 14:39:25] robinmessag at hotmail dot com

Description:
------------
When doing the modulus of a negative number, PHP returns a bogus value.
However, it is clearly doing the modulus, simply returning a negative
answer.
In order to work around, one can add the modulus and mod again, but
this is not a satisfactory solution IMHO.
This bug has been reported before and dismissed, however, modulus on
negative numbers is correct and useful and this should be fixed or at
least documented.

Reproduce code:
---------------
$hour=4;
$timedifference1=-6;
$timedifference2=-30;
$realtime=($hour+$timedifference1)%24;
$realtime2=($hour+$timedifference2)%24;
$realtime3=($hour+$timedifference2)%24;
$realtime3=(24+$realtime3)%24;
echo("The time is:$realtime or maybe $realtime2<BR>");
echo("The correct time is:$realtime3<BR>");

Expected result:
----------------
The time is:22 or maybe 22
The correct time is:22

Actual result:
--------------
The time is:-2 or maybe -2
The correct time is:22


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


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

Reply via email to