在其它編程語言中,數據之間的轉換是非常普遍的。當然,在ABAP編程中也同樣涉及到數據之間的相互轉換,在不同的數據對象之間賦值,系統會自動進行類型轉換,轉換過程遵照固定規則進行,例如將一個C類型數據賦值也N類型對象,只有數字字符被傳遞,其它字符則被忽略。
FOR EXAMPLE:
DATA:ttext(10) TYPE C VALUE 'ABC1234567',
tnum(10) TYPE N,
tint TYPE I.
tnum = ttext.
tint = tnum.
WRITE: / 'tnum=',tnum,
/ 'tint=',tint.
*輸出: tnum=0001234567
tint=1,234,567
變量ttext賦值給tnum時,ABC被轉換為000,當tnum賦值給tint時,默認取其整數部分。需要注意的是,C類型不能直接賦值給I,如果上例語句中寫與tint=ttext,系統將報錯提示數據類型轉換錯誤。
ABAP中還可以使用以下語法實現數據間賦值:
MOVE A TO B.
WRITE A TO B.
如B的數據類型應為C、N、D或者T,錯誤提示如下:
像上圖所示,在類型轉換過程中還有一定的限制,還得在實踐中不斷揣摩。
不同進制之間的轉換可以參考如下方法:
DATA:chr TYPE C.
FIELD-SYMBOLS:<FS> TYPE X, "定義一個十六進制的指針類型
<FC> TYPE C.
chr = 'A'.
ASSIGN chr TO <FS> CASTING. "將字符轉換為十六進制
<FS> = <FS> + 1.
ASSIGN <FS> TO <FC> CASTING. "將十六進制的指針對象轉換為字符指針對象
MOVE <FC> TO chr. "將指針變量賦值到字符變量