Numeric Operators
Developers can combine numeric values and arithmetic operators to perform calculations. The following is a list of PRO/5 numeric operators in order of precedence. Execute operators with the same precedence from left to right.
Operators | Description |
---|---|
- |
Unary Minus (Negation) LET A=-B |
^ |
Exponentiation (raise a number to an integer or non-integer power) LET A=B^C |
* / |
Multiplication and division LET A=B*C, X=Y/Z |
+ - |
Addition and subtraction LET A=B+C, X=Y-Z |
< > = <= >= <> |
Relational Operators LET A=B<C, X=Y<>Z |
AND OR |
Logical Operators LET A=B OR C, X= Y AND Z |
Use parenthesis to change the order of execution of operators. PRO/5 supports at least 10 levels of parenthetic nesting (multi-line functions may reduce this), including array subscripts and function calls.
Relational Operators: <, >, =, <=, >=, <>
Developers can use relational operators to compare two numeric values or two strings. If the relation is true, the result is 1; otherwise, the result is 0. When comparing two numbers, their values round to the current precision during the compare. See the PRECISION verb for more information.
Example
LET A= B<C, X=Y<>Z
Logical Operators: AND, OR
The result of AND is 1 if both of its operands are nonzero, otherwise, the result is 0.
The result of OR is 1 if either or both of its operands are nonzero, otherwise the result is 0.
PRO/5 features short-circuit evaluation of the AND and OR operators.
Example
LET A= B AND C, X=Y OR Z