REPORT z_division_example.
DATA: numa TYPE p DECIMALS 2 VALUE '5.45',
numb TYPE p DECIMALS 2 VALUE '1.48',
result1 TYPE p DECIMALS 2, " 일반 나눗셈 결과
result2 TYPE i, " 정수 나눗셈 결과
result3 TYPE p DECIMALS 2. " 나머지 결과
" 일반 나눗셈 (소수 포함)
result1 = numa / numb.
WRITE: / '1. 일반 나눗셈 (/):', result1.
" 정수 나눗셈 (DIV)
result2 = numa DIV numb.
WRITE: / '2. 정수 나눗셈 (DIV):', result2.
" 나머지 계산 (MOD)
result3 = numa MOD numb.
WRITE: / '3. 나머지 계산 (MOD):', result3.
- Ram에 저장되므로 접근 속도가 매우 빠름 => 프로그램 실행 속도를 빠르게 하는데 도움이 됨!
- 변수, 상수와 같은 두가지 종류가 있음
변수
상수
변수란?
: 변수는 프로그램 실행 중 값이 바뀔 수 있는 필드를 의미함
이름 명명 규칙:
1. 영문자로 시작함
2. 최대 30자
3. +, ,(콤마), :(콜론), 괄호() 사용불가
4. 예약어 사용불가
DATA문으로 변수선언
변수는 DATA문장으로 선언함
DATA integer01 TYPE i.
- DATA -> 변수선언
- integer01 -> 변수 이름
- TYPE i -> 정수형 타입
- . -> 문장끝
소수점 숫자 저장용 변수 선언
DATA packed_decimal01 TYPE p DECIMALS 2.
- TYPE p -> 소수점 있는 숫자
- DECIMALS 2 -> 소수점 2자리까지 저장
✅ Packed decimal은 최대 14자리 소수까지 저장할 수 있어 비즈니스 용도에 충분함
LIKE 구문사용(참조형 변수선언)
- TYPE대신 LIKE를 쓰면, 다른 변수의 타입을 그대로 복사할 수 있음
DATA packed_decimal02 LIKE packed_decimal01.
- 원본 타입을 바꾸면, LIKE로 선언한 변수들도 자동으로 따라감
☑ 테이블의 필드도 참조 가능
DATA new_surname LIKE zemployees-surname.
=> 정확한 타입을 일일이 외우거나 찾지 않아도 돼서 편리함
초기값_INITIAL VALUE지정
- 변수에 초기값을 지정할 땐 VALUE를 씀
DATA integer01 TYPE i VALUE 22.
DATA packed_decimal01 TYPE p DECIMALS 2 VALUE '12.34'.
- packed decimal처럼 소수점있는 숫자는 ''작은따옴표로 감싸야함 (마침표가 소수점인지 문장끝인지 혼동되지 않기 위해)
- 음수 값도 - 기호를 붙여서 선언할 수 있음
상수(constants)란?
: 상수는 변수와 비슷하지만, 프로그램 실행 중 값이 변하지 않음
- 세율, 환율, 고정된 코드값 등 변하지 않는 값을 표현할 때 유용함
CONSTANTS pi TYPE p DECIMALS 2 VALUE '3.14'.
•CONSTANTS → 상수 선언
•pi → 이름
•TYPE p → 소수점 있는 숫자
•DECIMALS 2 → 소수점 둘째자리까지
•VALUE '3.14' → 초기값 지정
ex) 총액에 세율을 곱하는 계산
CONSTANTS tax_rate TYPE p DECIMALS 2 VALUE '0.10'.
DATA total TYPE p DECIMALS 2 VALUE '100.00'.
DATA tax TYPE p DECIMALS 2.
tax = total * tax_rate.
WRITE: / 'Tax:', tax.