>p타입 decimals 4 인 변수값에서
>
>1234.1200 => 1234.12
>1234.1230 => 1234.123
>1234.0000 => 1234
>
>식으로 소수점 이하 값이 없는 부분의 0만 지우려면 어떻게 해야하나요?
>alv가 아니고 write 해야합니다. 즐거운 월요일 되십시요~
이게 맞는지는 모르겠지만 이런 방법도....
DATA : l_amount1(10) TYPE p DECIMALS 4,
l_amount2 LIKE l_amount1,
l_amount3 LIKE l_amount1,
l_text TYPE char15 ,
l_num TYPE char10 ,
l_decimal TYPE char4.
*&---------------------------------------------------------------------*
START-OF-SELECTION.
* 금액반영
l_amount1 = '1234.123'.
l_amount2 = '2345.034'.
l_amount3 = '1234.01'.
*
SKIP 3.
l_text = l_amount1.
* 소수점 기준으로 정수부와 소수부 자름
SPLIT l_text AT '.' INTO l_num l_decimal.
WRITE :/ l_amount1 COLOR 4 , ' -> ' COLOR 2,
l_num COLOR 1 , l_decimal COLOR 1.
* 소수부의 '0' 제거
SHIFT l_decimal RIGHT DELETING TRAILING '0'.
CONDENSE l_decimal.
IF l_decimal EQ ''.
l_text = l_num.
ELSE.
CONCATENATE l_num '.' l_decimal INTO l_text.
ENDIF.
WRITE : ' => ' COLOR 2 , l_text COLOR 7.
*
SKIP .
l_text = l_amount2.
* 소수점 기준으로 정수부와 소수부 자름
SPLIT l_text AT '.' INTO l_num l_decimal.
WRITE :/ l_amount2 COLOR 4 , ' -> ' COLOR 2,
l_num COLOR 1 , l_decimal COLOR 1.
* 소수부의 '0' 제거
SHIFT l_decimal RIGHT DELETING TRAILING '0'.
CONDENSE l_decimal.
IF l_decimal EQ ''.
l_text = l_num.
ELSE.
CONCATENATE l_num '.' l_decimal INTO l_text.
ENDIF.
WRITE : ' => ' COLOR 2, l_text COLOR 7.
SKIP .
l_text = l_amount3.
* 소수점 기준으로 정수부와 소수부 자름
SPLIT l_text AT '.' INTO l_num l_decimal.
WRITE :/ l_amount3 COLOR 4 , ' -> ' COLOR 2,
l_num COLOR 1 , l_decimal COLOR 1.
* 소수부의 '0' 제거
SHIFT l_decimal RIGHT DELETING TRAILING '0'.
CONDENSE l_decimal.
IF l_decimal EQ ''.
l_text = l_num.
ELSE.
CONCATENATE l_num '.' l_decimal INTO l_text.
ENDIF.
WRITE :' => ' COLOR 2, l_text COLOR 7.