步骤:
1. 求质.
2. 放到CHAR型变量里.
3. 在前面加负号,连接,压缩空格,输出.
最简单的就是用字符转换吧,还有个功能函数就是专门用来负号前置的,但有些附带的问题,以后用到再看.
程序代码:
----------------------------------------
REPORT zpab06_t_negtive.
*----------------------------------------------------------------------*
* 负数的负号前置显示 (i,f,p 类型为右对齐显示"RIGHT-JUSTIFIED") *
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
* 整数
*----------------------------------------------------------------------*
DATA: output(12) TYPE c,
outdata TYPE i VALUE '-1'.
IF outdata < 0.
outdata = ABS( outdata ). "OUTDATA = OUTDATA * ( -1 ).
MOVE outdata TO output.
CONCATENATE '-' output INTO output.
CONDENSE output NO-GAPS. "压缩字符串,去掉空格
ENDIF.
WRITE : / output.
*----------------------------------------------------------------------*
* 浮点数
*----------------------------------------------------------------------*
DATA: output1(19) TYPE c,
outdatum TYPE p DECIMALS 2 VALUE '-1.23'.
IF outdatum > 0.
WRITE outdatum TO output1. "RIGHT-JUSTIFIED.
CONCATENATE ' ' output1 INTO output1.
ELSE.
outdatum = outdatum * ( -1 ).
WRITE outdatum TO output1. "RIGHT-JUSTIFIED.
CONCATENATE '-' output1 INTO output1.
ENDIF.
CONDENSE output1 NO-GAPS.
WRITE: / output1.
1. 求质.
2. 放到CHAR型变量里.
3. 在前面加负号,连接,压缩空格,输出.
最简单的就是用字符转换吧,还有个功能函数就是专门用来负号前置的,但有些附带的问题,以后用到再看.
程序代码:
----------------------------------------
REPORT zpab06_t_negtive.
*----------------------------------------------------------------------*
* 负数的负号前置显示 (i,f,p 类型为右对齐显示"RIGHT-JUSTIFIED") *
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
* 整数
*----------------------------------------------------------------------*
DATA: output(12) TYPE c,
outdata TYPE i VALUE '-1'.
IF outdata < 0.
outdata = ABS( outdata ). "OUTDATA = OUTDATA * ( -1 ).
MOVE outdata TO output.
CONCATENATE '-' output INTO output.
CONDENSE output NO-GAPS. "压缩字符串,去掉空格
ENDIF.
WRITE : / output.
*----------------------------------------------------------------------*
* 浮点数
*----------------------------------------------------------------------*
DATA: output1(19) TYPE c,
outdatum TYPE p DECIMALS 2 VALUE '-1.23'.
IF outdatum > 0.
WRITE outdatum TO output1. "RIGHT-JUSTIFIED.
CONCATENATE ' ' output1 INTO output1.
ELSE.
outdatum = outdatum * ( -1 ).
WRITE outdatum TO output1. "RIGHT-JUSTIFIED.
CONCATENATE '-' output1 INTO output1.
ENDIF.
CONDENSE output1 NO-GAPS.
WRITE: / output1.