在 ABAP 中对技术数据类型进行分类
学习目标
对 ABAP 中的技术数据类型进行分类。
总结 - 一些预定义的 ABAP 类型
我们来快速回顾一下您在早期学习之旅中学习到的预定义 ABAP 类型。我们还将查看一些其他完整和不完整的数据类型。

上图显示了基本 ABAP 编程课程中涵盖的数据类型。STRING、I、D 和 T 类型称为完整类型,因为您无法更改它们的长度。类型 C、N 和 P 称为不完整类型。声明具有这些类型之一的变量时,必须指定长度,对于类型 P,必须指定小数位数。

除了您已遇到的四个完整数据类型(STRING、I、D 和 T)外,还有六种数据类型:
INT8 - 8 字节整数
DECFLOAT16 - 16 位十进制浮点数
DECFLOAT34 - 34 位十进制浮点数
F - 二进制浮点数
XSTRING - 任意长度的字节序列
UTCLONG - 时戳

除类型 C、N 和 P 外,ABAP 还具有用于字节序列的内置类型 X。类型 X 不完整,表示在使用此类型声明变量时,必须指定长度。
数据类型的分类
除了区分完整的数据类型和不完整的数据类型外,我们还可以将内置 ABAP 数据类型分类为字符型、数字、字节型以及日期和时间。这种区别很重要,因为某些操作仅允许用于字符型字段,而其他操作仅允许用于数字字段。不能在单个操作中混合使用字符和字节字段。

选择数字类型时,如果需要整数,应使用类型 I,对于带小数位的数字,应使用类型 P。如果类型 I 的范围过小,则可以使用类型 INT8。同样,如果类型 P 的范围或精度不足,也可以使用 DECFLOAT 类型之一。压缩的数字最多可以有 14 位小数。DECFLOAT 数据类型(尤其是 DECFLOAT34)支持更高的准确性。
F 类型用于二进制浮点数。由于将二进制数转换回小数系统时可能会发生舍入错误,因此应避免在程序中使用类型 F 进行计算。但是,使用 SQL 从数据库读取数据时,浮点数会突出显示。
对于日期和时间字段,可使用类型 D 和 T。类型 D 使用格式 YYYYMMDD,类型为 T,格式为 HHMMSS。类型 T 精确到秒 - 如果需要更高的精确度,可以使用类型 UTCLONG。这是一个由日期和时间组成的时戳,精确到 100 纳秒。