ID:               29732
 User updated by:  robinmessag at hotmail dot com
 Reported By:      robinmessag at hotmail dot com
-Status:           Feedback
+Status:           Open
-Bug Type:         Feature/Change Request
+Bug Type:         Documentation problem
 Operating System: Windows 98SE
 PHP Version:      Irrelevant
 New Comment:

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.


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

[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