现在的位置: 首页 > 综合 > 正文

基本类型

2012年06月03日 ⁄ 综合 ⁄ 共 1621字 ⁄ 字号 评论关闭

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 to2**31-1,即-2147483648 to 2147483647

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

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

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

data: a type pDECIMALS 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,则此变量的长度为20byte20byte可显示20characters包括alphanumeric
characters
numeric characters),其output length20

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

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

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

【上篇】
【下篇】

抱歉!评论已关闭.