您的位置:首页 > 其它

abap 基本数据类型

2015-03-09 15:53 204 查看


C赋值

data: lv_c1 type c LENGTH 3 .

data: lv_c2 type c LENGTH 3.

lv_c1 = '1234'.

lv_c2 = 1234.

WRITE: 'lv_c1=', lv_c1, ';lv_c2=',lv_c2.

分析:C这种既可以存储文本,又可以存储数据的类型,最终都转化成文本存储
给lv_c1赋'1234',在这里带引号的就是做文本处理,因长度限制,程序会取最前面的数据存储.
给lv_c2赋数值1234,因为是数值处理,程序会从低位开始存储。剩余两们'12'会全部放入lv_c2中的第一位,因为溢出,所以第一位变成'*'.
2.X赋值

data: lv_x1 type X .

data: lv_X2 type X.

lv_X1 = '20'.

lv_X2 = 20.

WRITE: 'lv_x1=', lv_x1, ';lv_x2=',lv_x2.

分析:
赋值给lv_x1的时候,程序认为带引号的20是已经转换过了的,不需要再转换 成16进制

给lv_x2赋值的时候,程序认为这还是一个十进制的,所以会反它做一下转换

3.N赋值

data: lv_N1 type N LENGTH 3 VALUE '12345' .

data: lv_N2 type N LENGTH 3 VALUE 12345.

data: lv_N3 type N LENGTH 3 VALUE '1.234E+08'.

WRITE: 'lv_N1=', lv_N1, ';lv_N2=',lv_N2,';lv_N3=',lv_N3.

分析: N类型只能存储数值文本,不论赋一个带引号的数值还是不带引号的数值,程序都作为数值存储。其中非数字会被丢弃。
4.P数值的计算

data: lv_p1 type p DECIMALS 3,

lv_p2 TYPE p DECIMALS 3.

lv_p1 = 2 / 4 * 4.

lv_p2 = 1 / 3 * 3.
WRITE: 'lv_p1=',lv_p1,/ ';lv_p2=',lv_p2.

分析:
(1)
当如下设置的时候,

结果为:

小数位不参与计算。

计算过程中,小数位被四舍五入了。
在得出最终结果后,根据显decimal设置,显示相应的小数位数。

(2)
当如下设置的时候(默认设置),

结果为:

小数参与计算
*注意:如果赋一个'1.234E+03'给P类型变量,编译不能通过,

错误为'unable to interpret
1.1234E+03 as anumber'.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: