负号前置/去掉小数点后多余的0

DATA(INPUT) = '0.1230'.

DATA OUTPUT TYPE STRING.
DATA: OUTPUT1(20),
      OUTPUT2(20),
      OUTSIGN     TYPE P DECIMALS 6.
DATA : LV_STRING TYPE STRING.

"负号前置
IF INPUT IS NOT INITIAL.
  OUTSIGN = INPUT.
  IF INPUT > 0.
    WRITE OUTSIGN TO OUTPUT1 ."RIGHT-JUSTIFIED .
  ELSE.
    OUTSIGN = OUTSIGN * ( -1 ).
    WRITE OUTSIGN TO OUTPUT1 ."RIGHT-JUSTIFIED.
    CONCATENATE '-' OUTPUT1 INTO OUTPUT1.
  ENDIF.
ELSE.
  CLEAR OUTPUT1.
ENDIF.
CONDENSE OUTPUT1 NO-GAPS .

"去掉多余的0和小数点
LV_STRING = OUTPUT1.
CONDENSE LV_STRING NO-GAPS.
SHIFT LV_STRING RIGHT DELETING TRAILING '0'.     "除右边无意义0
SHIFT LV_STRING RIGHT DELETING TRAILING '.'.     "除右边无意义小数点

WRITE LV_STRING TO OUTPUT2 RIGHT-JUSTIFIED .
OUTPUT = OUTPUT2.
WRITE INPUT.
WRITE OUTPUT.


关键词: ABAP

网友评论

发表评论