NUMERIC parameter value NUMERIC DIGITS n NUMERIC FUZZ n NUMERIC FORM SCIENTIFIC | ENGINEERING | "string constant" | [VALUE] expression The expression evaluator uses arbitrary length arithmetic for numeric operations. The precision to which operations are carried out by the evaluator may be altered using the NUMERIC DIGITS command, and is initially 9. The number supplied will be the number of digits kept after each operation, not including the decimal point, or leading zeros, which are dropped by all arithmetic operations. The upper limit for NUMERIC DIGITS is about 10000 (defined in const.h). Note that a single multiplication or division can take many minutes at this precision. NUMERIC FUZZ is initially zero and is set to zero by each NUMERIC DIGITS command. It specifies a temporary reduction in the precision of arithmetic when doing comparisons (remember, for all numeric comparisons, the two operands are subtracted and the result is compared with zero. It is the precision of the subtraction which is affected by NUMERIC FUZZ). The upper limit for NUMERIC FUZZ is clearly one less than the current value of NUMERIC DIGITS. NUMERIC FORM is used to set the form of exponents to either `scientific' mode or `engineering' mode. When an exponent is used, in the scientific mode there is always precisely one digit, which is non-zero, before the decimal point. In engineering mode, there are up to three digits before the decimal point, and the exponent is always a multiple of three. If an expression is used, it must evaluate to "SCIENTIFIC" or "ENGINEERING" in upper case. If the expression does not start with a symbol or string constant, then the keyword VALUE may be omitted. The NUMERIC settings are saved across function calls, and restored on return from a function, so a function may set the precision, etc. that it needs without affecting the caller. Moreover, the settings will be restored to their default settings just after entering any external REXX procedure.