arith_exp - Arithmetic Expressions
Short Reference
ABAP Syntax ... [+|-] operand1
[{ +|-|*|/|DIV|MOD|** } [+|-] operand2
[{ +|-|*|/|DIV|MOD|** } [+|-] operand3
... ]] ... .
What does it do? An arithmetic expression expresses a calculation. The
result of an arithmetic expression is a numeric value of the
calculation type assigned to the arithmetic
expression. In an arithmetic expression arith_exp , the
arithmetic operators + , - ,
* , / , DIV , MOD , or ** can be used to
join an operand operand1 with one or more operands operand2
, operand3 ... Brackets are also
possible. Arithmetic expressions can occur in the reader positions of
certain statements , in particular on
the right side of an assignment with the
assignment operator = . When used as
the operand of the lossless operator EXACT , an arithmetic
expression can be checked for a lossless
calculation .
The operand positions operand are
general expression positions ,
which means that numeric data objects,
predefined functions , functional methods
, or compound arithmetic expressions can be specified. The arithmetic
operators + , - , * , / , DIV , MOD
, and ** join two adjacent operands. When the expression is
evaluated, a numeric value is calculated and joined with the next
adjacent operand. The priority of this join depends on the
operators used.
Each operand can be preceded by the signs + or - , in any
order and separated by one or more blanks. The effect of using a sign is
the same as specifying the expression +1 * or -1 * , which
means that a sign has the same priority as a multiplication.
If functional methods or
character-like expressions are
specified as operands, they are listed from left to right and from
inside to outside before the remainder of the expression is evaluated.
The return values are buffered to be used in the corresponding operand
positions. Here, character-like processing
functions and string expressions are only
possible as arguments of description
functions .
Latest notes:s Note whether the value of a data object that is also used
as an operand is changed in a specified functional method. Even if an
operand of this type precedes the functional method, its value will
always be changed by the method before it is evaluated.
Arithmetic expressions, string
expressions , and bit expressions
cannot be combined. Predefined functions that are used as operands for
arithmetic expressions can, however, contain string expressions or bit
expressions as arguments.
If an arithmetic expression
is specified as an argument of one of the overloaded
numeric functions , the entire
function works like an arithmetic expression.
Example ABAP Coding The following program excerpt computes the hyperbolic
sine with the Eulerian formula in calculation type decfloat34 and
with the predefined function
sinh in calculation type f and displays the difference.
TYPES:
BEGIN OF line,
x TYPE string,
y TYPE string,
END OF line.
DATA
output TYPE TABLE OF line WITH EMPTY KEY.
DO 2001 TIMES.
TRY.
DATA(x) = sy-index - 1001.
DATA(result1) = CONV decfloat16(
( exp( x ) - exp( -1 * x ) ) / 2 ).
DATA(result2) = CONV f( sinh( x ) ).
DATA(diff) = abs( result1 - result2 ).
IF diff <(><<)>> 0.
APPEND VALUE #( x = |{ x }|
y = |{ diff STYLE = SCIENTIFIC }| ) TO output.
ENDIF.
CATCH cx_sy_conversion_overflow cx_sy_arithmetic_overflow.
ENDTRY.
ENDDO.
cl_demo_output=>display( output ).
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved