-
[ABAP] Predefined ABAP Type공부/ABAP 2020. 8. 7. 00:16
[Numeric - Data Type]
1. Integers (whole numbers) of Type I
- 범위 : -2^31 (-2147483648) ~ 2^31 - 1 (2147483647)
- 정수 타입만 지원
- 정수가 아닌 것은 반올림
- Counter, Item 수, Index 등에 쓰임
2. Packed numbers of Type P
- Two decimal digit are packed into one byte에서 유래됨
- 소수 자리를 허용
- 가용 Size 1~ 16byte이며, 소수는 최대 14자리 설정 가능
- 프로그램 속성 Setting 시 Fixed point arithmetic을 체크해야 함. 그렇지 않을 경우, Type P는 Integer로 표현됨
(1.23 -> 123)
- 정확히 계산을 요하는 Business Calculation 목적으로 사용됨
3. Floating point number of Type F
- 값의 범위는 1*10^-307 ~ 1*10^308
- 지수 형태로 표현되므로 FLTP_CHAR_CONVERSION과 같은 Function Module을 이용해 다른 데이터 타입으로 변환하여 출력함
- Type F는 내부적으로 Binary System으로 전환될 때 반올림 에러가 발생할 수 있음(Rough Calculation)
- 높은 정확도를 요구한다면 Type P를 사용해야 하며, 매우 작거나 큰 수라면 Type F 사용을 권장함
- Value 범위가 넓은 경우나, 반올림 오류가 중요한 사항이 아닐 경우 Type F를 사용함(실수 값에 대한 근삿값을 가지는 타입이기 때문에 주의)
[Numeric - Operation]
기호 의미 사용 예 기호와 동일한 키워드 + 더하기 <p> = <n> + <m>. ADD <n> TO <m>. - 빼기 <p> = <m> - <n>. SUBTRACT <n> FROM <m>. * 곱하기 <p> = <m> * <n>. MULTIPLY <m> BY <n>. / 나누기 <p> = <m> / <n>. DIVIDE <m> BY <n>. DIV Integer 나누기 <p> = <m> DIV <n>. MOD Integer 나누기의 나머지 <p> = <m> MOD <n>. ** 제곱 <p> = <m> ** <n>. [Numeric - Data Type 함수]
함수 내역 사용 예 ABS 절대값을 리턴한다. ABS(-100)은 100을 리턴 SIGN 부호에 대한 결과를 리턴한다. 마이너스 -1, 0 -> 0, 플러스 + 리턴 CEIL 올림 CEIL(1.3), CEIL(1.7)은 모두 2를 리턴 FLOOR 내림 FLOOR(1.3), FLOOR(1.7)은 모두 1을 리턴 TRUNC 소수점을 버리고 정수만 남긴다. TRUNC(1.3), TRUNC(1.7)은 모두 1을 리턴 FRAC 소수점 이하 자리만 남긴다. FRAC('2.9')는 0.9를 리턴한다. [Floating-Point 함수]
Function Meaning ACOS, ASIN, ATAN; COS, SIN, TAN 삼각함수 COSH, SINH, TANH 쌍곡선 함수 EXP 지수함수 LOG 자연로그 함수 with base e LOG10 상용로그 함수 with base 10 SQRT 제곱근 함수 [Character Type]
C 문자, 숫자, 특수문자에 사용. N 숫자를 C 타입으로 표현. Integer 형태를 문자 타입으로 보여줌. D 날짜 타입을 표현. T 시간 타입을 표현. 더보기별도로 알면 좋은 것들
1. C 타입은 데이터 선언 시에 문자 길이를 명시적으로 선언해야 한다. 문자 길이를 지정하지 않거나 Data Type을 선언하지 않으면 기본적으로 Character 1 자리로 정의된다.
2. 문자 길이를 지정할 경우에는 LENGTH 옵션을 이용하여 선언할 수 있는데 C, N, X, P 타입에서 사용 가능하다.
3. MOVE 명령은 = 기호와 동일하게 데이터를 할당하는 명령어이다.
4. MOVE-CORRESPONDING 구문은 구조체나 헤어라인이 존재하는 Internal Table에 사용되는 구문이다.
5. Strlen 명령어는 문자의 길이를 반환하는 기능을 수행한다.
6. SY-DATUM은 시스템 변수로 시스템의 오늘 날짜를 저장하고 있다.
7. SY-UZEIT은 시스템 변수로 현재 시간이 포함되어 있다.
# 시스템 변수 SY-DATUM과 SY-DATLO의 차이점
SY-DATUM과 SY-DATLO는 둘 다 시스템 일자를 저장하고 있는데 SY-DATLO 시스템 변수는 User Time Zone을 이용해서 현지의 현재 시간을 인식할 수 있다.
SY-TIMLO도 같다.(SY-UZEIT)
참고 - EASYABAP 58쪽
[가변 길이를 가지는 Predefined ABAP Type]
명령어 의미 FIND ABAP이란 글자 안에 B가 있으면, 시스템변수 SY-SUBRC = 0 반환 REPLACE ABAP을 BBAP로 바꿈 TRANSLATE 대소문자를 변경한다. ABAP -> abap / abap -> ABAP SHIFT ABAP을 왼쪽으로 한 칸씩 옮김 CONDENSE 공백을 제거하여 왼쪽으로 정렬 NO-GAPS와 주로 사용되어 SPACE를 제거 OVERLAY character의 빈 곳을 채우고, 채워져 있는 곳을 덮어쓰지 않음 CONCATENATE AB+AP을 합쳐서 ABAP으로 연결 SPLIT 기준 문자 C를 중심으로 AB와 AP로 나눔 '공부 > ABAP' 카테고리의 다른 글
[ABAP] 기타 변수 선언(CONSTANTS, STATICS, TABLES) (0) 2020.08.11 [ABAP] Assigning Value (0) 2020.08.11 [ABAP] Naming Rule (0) 2020.08.05 [ABAP] Frequently used buttons in Application Toolbar (0) 2020.08.04 [ABAP] DATA TYPE (0) 2020.07.31 댓글