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'.
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'.
相关文章推荐
- 深入解析ABAP基本数据类型(ABAP elementary types)
- ABAP基本数据类型、通用类型
- ABAP基本数据类型
- ABAP 基本数据类型
- 深入解析 SAP ABAP 基本数据类型(ABAP elementary types)
- 区分方法重载与基本数据类型的转换
- Java基本数据类型转换(转)
- Oracle基本数据类型存储格式浅析
- Dev-C++下基本数据类型学习小结
- Windows基本的数据类型
- SQL的基本操作(1.数据类型)
- C语言基础知识总结(1)-基本数据类型
- java学习笔记(二) ----基本数据类型应用
- Java的基本数据类型与流 (ZT)
- Dev-C++下基本数据类型学习小结
- 读书笔记:Java基本数据类型的强制转换
- Oracle基本数据类型存储格式浅析(一)——字符类型
- C#基本数据类型
- Java基础小知识——基本数据类型和字符串以及字节数组的转换
- Oracle基本数据类型存储格式浅析(一)—(五)