当前位置:文档之家› 深入解析ABAP基本数据类型

深入解析ABAP基本数据类型

深入解析ABAP基本数据类型

2013-09-03 13:56:29| 分类: ABAP | 标签:数据类型 语法 |举报|字号 订阅

下载LOFTER客户端
在SAP系统中,每个byte可以显示一个character(字符)或两个十进制/十六进制数字。

在ABAP中定义变量时,如果指定长度,其单位是byte,而不是字符数;在SAP Dictionary中定义data type时,如果指定长度,其单位为字符数,而不是byte。这是一个非常重要的区别,因为在SAP系统中,每个byte可以显示一个character(字符)或两个十进制/十六进制数字。

ABAP的基本数据类型大致可以分为三类:

a.所有属性已由ABAP指定,开发人员无法更改的基本类型,包括D,F,I,T四种;

b.部分属性(如长度,小数点位置)由开发人员指定的基本类型,包括C,N,P,X四种;

c.部分属性不固定(如长度),在程序中可以变化的基本类型,包括STRING,XSTRING两种。

按照另一种方法,可将ABAP的基本类型分为两类:

a.串,包括字符串和数字串,具体到类型,包括C,N,P,X,STRING,XSTRING,D,T。字符串的每一位为alphanumeric characters,输字串的每一位为numeric characters,这两种串的每一位都占一个byte;

b.数字,具体到类型,包括I,F。数字类型的每一位为digit,两个digit占一个byte。

在程序中使用基本类型时,最难准确理解的是I,F,C,N,P,X这几种基本类型。

TYPE I 的数值范围是-2**31 to 2**31-1,即-2147483648 to 2147483647;

TYPE F的数值范围是1x10**-307 to 1x10**308;

而在使用DATA定义变量时可以设定length的类型P、C、N、X这几个类型,长度都是由length语句指定的。

例如P类型(为Packed number),长度范围为1~16,如果不指定长度,则默认为8。假设length指定的长度为16,则此变量的长度为32=16*2个数字(此32包括正负符号1位,即数字部分只能有31位。但不包括小数点,小数点是不计入此长度的),而此变量的output length为33=2*16+1。例如定义一个长度为4的P类型变量:

data: a type p DECIMALS 2 length 4.

a = '-12345.25'.(不包括小数点的数字部分为7=2*4-1位)
a = '12345.25'. (不包括小数点的数字部分为7=2*4-1位)
a = 12345. (不包括小数点的数字部分为7=2*4-1位,由于小数部分保留2位,故整数部分最多只能为5位)

例如类型C(为alphanumeric characters),长度范围为1~65535,如果不指定长度,则默认为1。例如length指定的长度为20,则此变量的长度为20byte(20byte可显示20个characters包括alphanumeric characters和numeric characters),其output length为20。

例如类型N(为numeric characters),长度范围为1~65535,如果不指定长度,则默认为1。例如length指定的长度为20,则此变量的长度为20byte(20byte

可显示20个characters包括alphanumeric characters和numeric characters),其output length为20。

例如类型X(为Hexadecimal field),长度范围为1~65535,如果不指定长度,则默认为1。例如length指定的长度为20,则此变量的长度为20byte(20byte可显示40个十六进制数字),其output length为40=20*2。

总结: 赋给某个变量的值的长度(某些类型的保留长度位数要考虑进去)只要不超过其output length即可。

相关主题
文本预览
相关文档 最新文档