MOD Function


Returns the remainder from the division of the first argument by the second argument, fuzzed to avoid most unexpected floating-point results

Category: Mathematical

Syntax

MOD ( argument-1, argument-2 )

Arguments

argument-1

  • is a numeric constant, variable, or expression that specifies the dividend.

argument-2

  • is a numeric constant, variable, or expression that specifies the divisor.

  • Restriction: cannot be 0

Details

The MOD function returns the remainder from the division of argument-1 by argument-2 . When the result is non-zero , the result has the same sign as the first argument. The sign of the second argument is ignored.

The computation that is performed by the MOD function is exact if both of the following conditions are true:

  • Both arguments are exact integers.

  • All integers that are less than either argument have exact 8-byte floating-point representations.

    To determine the largest integer for which the computation is exact, execute the following DATA step:

     data _null_;     exactint = constant('exactint');     put exactint=;  run; 

    Operating Environment Information: You can also refer to the SAS documentation for your operating environment for information about the largest integer.

If either of the above conditions is not true, a small amount of numerical error can occur in the floating-point computation. In this case

  • MOD returns zero if the remainder is very close to zero or very close to the value of the second argument.

  • MOD returns a missing value if the remainder cannot be computed to a precision of approximately three digits or more. In this case, SAS also writes an error message to the log.

Note: Prior to SAS 9, the MOD function did not perform the adjustments to the remainder that were described in the previous paragraph. For this reason, the results of the MOD function in SAS 9 might differ from previous versions.

Comparisons

Here are some comparisons between the MOD and MODZ functions:

  • The MOD function performs extra computations , called fuzzing, to return an exact zero when the result would otherwise differ from zero because of numerical error.

  • The MODZ function performs no fuzzing.

  • Both the MOD and MODZ functions return a missing value if the remainder cannot be computed to a precision of approximately three digits or more.

Examples

The following SAS statements produce results for MOD and MODZ.

SAS Statements

Results

  x1=mod(10,3);   put x1 9.4;  
  1.0000  
  xa=modz(10,3);   put xa 9.4;  
  1.0000  
  x2=mod(.3,-.1);   put x2 9.4;  
  0.0000  
  xb=modz(.3,-.1);   put xb 9.4;  
  0.1000  
  x3=mod(1.7,.1);   put x3 9.4;  
  0.0000  
  xc=modz(1.7,.1);   put xc 9.4;  
  0.0000  
  x4=mod(.9,.3);   put x4 24.20;  
  0.00000000000000000000  
  xd=modz(.9,.3);   put xd 24.20;  
  0.00000000000000005551  

See Also

Functions:

  • 'INT Function' on page 597

  • 'INTZ Function' on page 609

  • 'MODZ Function' on page 654




SAS 9.1 Language Reference Dictionary, Volumes 1, 2 and 3
SAS 9.1 Language Reference Dictionary, Volumes 1, 2 and 3
ISBN: N/A
EAN: N/A
Year: 2004
Pages: 704

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net