PRB: MOD Function w/ Negative Number May Give Different AnswerLast reviewed: April 30, 1996Article ID: Q130128 |
The information in this article applies to:
SYMPTOMSIf negative numbers are used with the MOD function, it is possible that the answer returned will be different from the answer given by other applications that also incorporate a MOD function.
CAUSEThe correct definition of MOD is as follows:
x MOD y = z where z + y * int(x/y) = x z = x - y * int(x/y)Therefore:
x MOD y = x - y * int(x/y)In the Microsoft MOD function, we do the same as above except we use the FLOOR() function instead of INT() in order to be backward compatible with other products that use the FLOOR() function.
RESOLUTIONBelow are two functions. The first function (FLOORMOD) implements the MOD with a FLOOR() function, and the second function (INTMOD) implements the MOD with an INT() function. Sometimes you may want to use the INTMOD function.
**** MOD with FLOOR() **** FUNCTION FLOORMOD PARAMETER x,y z = x - FLOOR(x/y)*y RETURN z ************************** **** MOD with INT() ****** FUNCTION INTMOD PARAMETER x,y z = x - INT(x/y)*y RETURN z ************************** STATUSThis behavior is by design.
|
Additional reference words: 3.00 VFoxWin
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |