ABAP

[SAP_ABAP] ABAP에서 'DIV'와 '/'의 차이 (+MOD)

universe8 2023. 9. 7. 21:00

로직 짜다가 나름 새로운 부분을 발견했다.

 

ABAP 내에서 ' DIV' 라는 구문과 '/'라는 구문이 똑같이 나누기를 의미하는줄 알았는데 둘이 다른 값이 나온다.

 

코드는 간단하게 이렇게 적었다.

DATA: LV_VAL1(4) TYPE I,
      LV_VAL2(4) TYPE I,
      LV_CALC    TYPE P DECIMALS 2.

LV_VAL1 = 10.
LV_VAL2 = 6.

LV_CALC = LV_VAL1 DIV LV_VAL2.  "10 나누기 6
LV_CALC = LV_VAL1  /  LV_VAL2.  "10 나누기 6

이 내용을 디버깅을 해보면,

 

15라인의 로직을 탔을때,

(디버깅화면 노란 화살표가 16라인에위치하는건, 15라인에 적힌 로직을 탔고  16라인에 적힌 로직이 타기 전 이라는뜻)

LV_CALC = 1.00 이라는 값이 담긴다.

LV_VAL1  DIV  LV_VAL2  = 1.00

 

그런데 16라인을 탄 디버깅 화면을 보면,

LV_CALC = 1.67 이라는 값이 담긴다.

LV_VAL1  /  LV_VAL2   = 1.67

똑같이 나누기를 했다고 생각했는데 결과값이 다르게 나와서, 사용시 주의해야 할 것같다.

 

참고로 'MOD'구문은 두값을 나눈 나머지의 값을 담아준다.

LV_VAL1 MOD LV_VAL2 = 4.00.

LV_VAL1  MOD  LV_VAL2 = 4.00

 

반응형