산술식은 런타임 시스템에서 결과를 계산하기 위해 처리하는 값, 연산자, 함수의 조합을 갖는 ABAP 식입니다. 산술식의 경우 결과 유형은 표현식에 대한 입력으로 사용되는 피연산자 유형에 따라 달라집니다.
값 지정의 오른쪽 등과 같이 모든 읽기 피연산자 위치에서 산술식을 사용할 수 있습니다.
다음 동영상에서는 산술식의 기본 사항을 보여줍니다.
Objectives
산술식은 런타임 시스템에서 결과를 계산하기 위해 처리하는 값, 연산자, 함수의 조합을 갖는 ABAP 식입니다. 산술식의 경우 결과 유형은 표현식에 대한 입력으로 사용되는 피연산자 유형에 따라 달라집니다.
값 지정의 오른쪽 등과 같이 모든 읽기 피연산자 위치에서 산술식을 사용할 수 있습니다.
다음 동영상에서는 산술식의 기본 사항을 보여줍니다.
12345678910111213141516171819202122232425262728293031
* Declarations
**********************************************************************
" comment/uncomment these line for different result types
TYPES t_result TYPE p LENGTH 8 DECIMALS 2.
* TYPES t_result TYPE p LENGTH 8 DECIMALS 0.
* TYPES t_result TYPE i.
DATA result TYPE t_result.
* Calculations
**********************************************************************
" comment/uncomment these lines for different calculations
result = 2 + 3.
* result = 2 - 3.
* result = 2 * 3.
* result = 2 / 3.
*
* result = sqrt( 2 ).
* result = ipow( base = 2 exp = 3 ).
*
* result = ( 8 * 7 - 6 ) / ( 5 + 4 ).
* result = 8 * 7 - 6 / 5 + 4.
* Output
**********************************************************************
out->write( result ).

문자열 템플릿은 문자열 결과 유형의 ABAP 표현식입니다. 읽기 피연산자 위치(예: 값 지정 오른쪽)에 문자열 템플릿을 사용할 수 있습니다.
문자열 템플릿이 시작되어 파이프 기호( | )로 끝납니다. 가장 간단한 문자열 템플릿에는 리터럴 텍스트만 포함됩니다. 이 서식에서 문자열 템플릿은 문자열 리터럴과 실제로 다르지 않습니다.
문자열 템플릿과 문자열 리터럴을 구분하는 것은 표현식을 임베드하는 기능입니다. 임베드된 표현식은 한 쌍의 중괄호( { 및 } )로 둘러싸인 ABAP 표현식입니다. 런타임 시 ABAP는 임베드된 표현식을 평가하고 결과를 문자열로 변환합니다. 최종 결과에서 이 문자열은 (주변의 중괄호와 함께) 임베드된 표현식을 대체합니다.
노트
물론 하나의 문자열 템플릿에는 둘 이상의 임베드된 표현식이 포함될 수 있습니다.
중괄호 안에는 위의 예와 같이 모든 종류의 ABAP 표현식을 배치할 수 있지만 단일 변수 또는 리터럴은 임베드된 표현식의 역할을 할 수 있습니다.

문자열 템플릿의 중요한 사용 케이스 중 하나는 출력 데이터의 형식을 제어하는 것입니다.
첫 번째 예에서 변수 the_date 는 d 유형이고 일자는 내부 (원시) 형식 YYYYMMDD (YYYY는 연도, MM 은 월 2자리, DD 는 두 자리 일자) 를 포함합니다. 문자열 템플릿에서 변수 the_date 를 임베드된 표현식으로 사용하면 결과는 내부 형식과 동일합니다. 그러나 중괄호 안에 DATE = <date_format> 형식 옵션을 추가하면 값이 날짜로 지정됩니다. DATE = ISO를 추가하면 ISO 형식으로 출력됩니다. DATE = USER인 경우 출력 형식은 현재 사용자의 사용자 설정에 따라 달라집니다.
두 번째 예는 숫자 서식 지정에 사용할 수 있는 몇 가지 옵션을 보여줍니다. NUMBER를 사용하여 일반적인 숫자 형식을 제어합니다(예: 소수점 사용 여부, 소수점 쉼표). SIGN을 사용하여 부호의 위치와 더하기 기호(+)의 표시 여부를 제어할 수 있습니다. STYLE을 사용하면 과학 스타일 또는 엔지니어링 스타일과 같은 몇 가지 미리 정의된 스타일 중에서 선택할 수 있습니다.

연결 연산자 &&를 사용하여 필드를 서로 조인할 수 있습니다. 데이터 오브젝트와 문자열식의 조합을 조인할 수 있습니다.
표현식의 구성 부분은 공백이나 구분 기호 없이 조인됩니다. 공백 또는 다른 구분 기호 문자가 필요한 경우 두 번째 예제와 같이 이를 표현식의 일부로 직접 삽입해야 합니다.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
METHOD if_oo_adt_classrun~main.
* Declarations
**********************************************************************
TYPES t_amount TYPE p LENGTH 8 DECIMALS 2.
DATA amount TYPE t_amount VALUE '3.30'.
DATA amount1 TYPE t_amount VALUE '1.20'.
DATA amount2 TYPE t_amount VALUE '2.10'.
DATA the_date TYPE d VALUE '19891109'.
DATA my_number TYPE p LENGTH 3 DECIMALS 2 VALUE '-273.15'.
DATA part1 TYPE string VALUE `Hello`.
DATA part2 TYPE string VALUE `World`.
* String Templates
**********************************************************************
" comment/uncomment the following lines for different examples
DATA(text) = |Hello World|.
* DATA(text) = |Total: { amount } EUR|.
* DATA(text) = |Total: { amount1 + amount2 } EUR|.
* Format Options
**********************************************************************
"Date
* DATA(text) = |Raw Date: { the_date }|.
* DATA(text) = |ISO Date: { the_date Date = ISO }|.
* DATA(text) = |USER Date:{ the_date Date = USER }|.
"Number
* DATA(text) = |Raw Number { my_number }|.
* DATA(text) = |User Format{ my_number NUMBER = USER }|.
* DATA(text) = |Sign Right { my_number SIGN = RIGHT }|.
* DATA(text) = |Scientific { my_number STYLE = SCIENTIFIC }|.
* String expression (concatenation Operator)
**********************************************************************
* DATA(text) = part1 && part2.
* DATA(text) = part1 && | | && part2.
* DATA(text) = |{ amount1 } + { amount2 }| &&
* | = | &&
* |{ amount1 + amount2 }|.
* Output
**********************************************************************
out->write( text ).
이번 연습문제에서는 두 숫자를 기준으로 계산을 수행한 다음 결과를 출력하고 서식을 지정하는 프로그램을 생성합니다.