Abap 将字符转换为整数

Abap 将字符转换为整数,abap,Abap,我有这个ABAP代码: CLEAR NEGATIIVNE. DATA gv_negativenumericvalue_txt TYPE CHAR40. SELECT SINGLE NETWR INTO NEGATIIVNE FROM VBRK WHERE VBELN = VBRK-VBELN. IF DEBIT_CREDIT = 'CRED'. NEGATIIVNE = NEGATIIVNE * -1. ELSE. NEGATIIVNE = NEGATIIVNE. ENDIF

我有这个ABAP代码:

CLEAR NEGATIIVNE.
DATA gv_negativenumericvalue_txt TYPE CHAR40.
SELECT SINGLE NETWR INTO NEGATIIVNE
  FROM VBRK
  WHERE VBELN = VBRK-VBELN.
IF DEBIT_CREDIT = 'CRED'.
  NEGATIIVNE = NEGATIIVNE * -1.
ELSE.
  NEGATIIVNE = NEGATIIVNE.
  ENDIF.
WRITE NEGATIIVNE TO gv_negativenumericvalue_txt.
REPLACE ALL OCCURRENCES OF '.' in gv_negativenumericvalue_txt with ''.
CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
 CHANGING
  value = gv_negativenumericvalue_txt.
CALL FUNCTION 'MOVE_CHAR_TO_NUM '
  EXPORTING
    CHR = gv_negativenumericvalue_txt
  IMPORTING
    NUM = NEGATIIVNE
  EXCEPTIONS
    CONVT_NO_NUMBER = 1
    CONVT_OVERFLOW  = 2
    OTHERS          = 3.
write:/ gv_negativenumericvalue_txt.
我需要做的是将变量
gv_negativenumericvalue\u txt写入变量negativeIIVNE
但我无法这样做:/I我需要它在我的ALV布局中显示值negativeIIVNE

现在代码运行良好,但只要我尝试这样做-


negativeIIVNE=gv\u negativenumericvalue\u txt
我得到的消息是,系统无法将字符识别为数字。

您得到的要求似乎是账单凭证的净值应以1格式显示,而不考虑控制十进制符号的用户设置

要做到这一点,唯一的方法是在ALV中使用21个字符(不需要40个字符)的字段,而不是否定

另一方面,因为
NEGATIIVNE=NEGATIIVNE.
不做任何我想写的事情

IF DEBIT_CREDIT = 'CRED'.
  NEGATIIVNE = NEGATIIVNE * -1.
ELSE.
  NEGATIIVNE = NEGATIIVNE.
ENDIF.
作为


你期待什么?这是基本的编程技能。您需要正确强制转换,或者尝试使用move gv_NegativeEnumericValue_txt来否定IIVNE。是否确定
gv_NegativeEnumericValue_txt
中包含的数字具有有效的数字表示形式?另外,我也不明白为什么在代码上下文中已经有了它的值时需要转换。@贾格尔,我认为前面的标志会破坏它
IF DEBIT_CREDIT = 'CRED'.
  NEGATIIVNE = NEGATIIVNE * -1.
ENDIF.