類型定義
- P (Packed):定長十進制,含小數位、小數點、符號位。如
TYPE P DECIMALS 2 長度 17 含 13 整數位 + 1 點 + 2 小數 + 1 符號。
- N (Numeric):純數字字符,無符號、無小數點,自動補前導零。
- C (Character):定長字符串。
轉換規則與效果
| 源 → 目標 | 規則 | 示例 |
| P → C | 目標長度需 ≥ 源定義長度(含符號/點),否則截斷 | P(17) → CHAR17 完整保留 |
| P → N | 去除符號、小數點,四捨五入取整,補前導零 | 123.45 → 000000000000123 |
| C → N | 自動過濾非數字字符 | "A1B2" → "000000000000012" |
代碼示例
[abap]
DATA: g_p17 TYPE P DECIMALS 2 VALUE '123.45',
g_c17 TYPE C LENGTH 17,
g_n17 TYPE N LENGTH 17.
g_c17 = g_p17. " 完整轉字符
g_n17 = g_p17. " 變為 000000000000123 (四捨五入)
g_n17 = g_c17. " 過濾非數字
應用技巧
C → N 可用於「從字符串提取純數字」。
- 接口文件(TXT/Excel)導出時,P 型建議先轉 C 型定長字段,再寫入。
- 注意長度匹配,避免截斷導致數據失真。