💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较深入的研究。
💅文章概要: 本文主要对SAP ABAP中预定义数据类型进行一个详细地介绍,在此前文章中我们已经对预定义数据类型有了一个最基本的了解,本文在此基础上会进行更加详细深入细致地讲解,主要包括预定义数据类型的分类
🤟每日一言: 永远年轻,永远热泪盈眶!
目录
- 预定义数据类型
- 预定义数据类型分类
- 数字型
- (一) 整数型 I
- (二) 小数型 P
- (三) 浮点型 F
- 字符串型
- (一) 文本型 C
- (二) 数字文本型 N
- (三) 日期型 D
- (四) 时间型 T
- 固定长类型
- 不定长类型
- 文末福利 | 好书推荐
预定义数据类型
在ABAP中,预定义的数据类型包括两种
:一种是在系统中已经预定义好的基本数据类型,在【T-CODE:SE38】
ABAP编辑器中定义数据对象时可以直接使用的,其中大致有如下最常用的8种:
数据类型 | 默认长度 | 有效长度 | 默认值 | 解释说明 |
---|---|---|---|---|
I | 4 | 4 | 0 | 整型 |
F | 8 | 8 | 0 | 浮点型 |
P | 8 | 1~16 | 0 | 压缩数类型(将两个十进制数字压缩到一个字节) |
C | 1 | 1~65535 | ‘…’ | 文本型 |
D | 8 | 8 | ‘00000000’ | 日期型(YYYYMMDD) |
N | 1 | 1~65535 | ‘0…0’ | 数字字符串类型(0~9之间的字符组成的数字字符串) |
T | 6 | 6 | ‘000000’ | 时间类型(格式:HHMMSS) |
x | 1 | 1~65535 | X’0…0’ | 十六进制字段 |
STRING | 0 | ANY | SPACE | 字符串类型 |
此外另一种预定义数据类型是在【T-CODE:SE11】
中定义数据元素时使用的,它们是用于专门维护数据元素所使用的,列举如下:
PS:这两种数据类型都可以进行互相转化,所以说它们的本质都是一样的
预定义数据类型分类
预定义数据类型有四大分类
,它们分别如下:
- 数字型
- 字符串型
- 固定长型
- 不固定长型
数字型
在ABAP中,数字型数据类型用于存储数值
和执行算术运算
。以下是ABAP中常见的数字型数据类型:
(一) 整数型 I
- 1) 值的范围是
-2^31(-2147483648)
~2^31(-2147483647)
下面给出一段代码,展示了如果参照整数型I
定义数据对象时如果超出范围
的提示报错:
DATA: gv_i type i VALUE -2147483649."默认值超出整型范围系统会报错
PS: 当超出范围时,激活程序时会发生
Overflow
错误!
-
2) 只支持
整数
类型 -
3) 非整数类型的数据会进行
四舍五入
的计算
DATA: gv_i TYPE i VALUE '2.5'.
WRITE:gv_i.
(二) 小数型 P
- 1) 允许有
小数位
DATA: gv_p TYPE p VALUE '2.5' DECIMALS 2.
WRITE:gv_p.
PS:
DECIMALS 2
代表小数点后两位。
- 2) 若不使用
DECIMALS
关键字指定小数位则与类型I效果一致
DATA: gv_p TYPE p VALUE '2.5' .
WRITE:gv_p.
PS: 在上述代码中没有使用
DECIMALS
关键字指定小数位,与类型I效果一致,会对默认值进行四舍五入
运算。
- 3) 可用长度为
1~16
,小数位最大长度为14位
DATA: gv_p TYPE p VALUE '2.5' DECIMALS 15."小数位超过14位激活系统会报错
WRITE:gv_p.
PS: 小数位
超过14位
激活系统会报错!
(三) 浮点型 F
- 1) F类型的显示值的方式为
科学计数法
DATA: gv_f TYPE f VALUE '25000'.
WRITE:gv_f.
PS: 上述图片中的值在数学中则是:
2.5000000000000000×10^(+4)
说明:使用下面表格
解释上述显示值各部分的含义
尾数 | 精度值 | 指数符号 | 正负符号 | 指数大小 |
---|---|---|---|---|
2.5 | 后面的0 | E | + | 04 |
-
2) 值的范围是
10^-307~10^308
-
3) F类型转换成二进制时会发生
进位误差
PS: 举个例子:
0.1
的二进制表示是一个无限循环的二进制小数,即0.0001100110011...(重复)
。由于二进制无法精确表示 0.1 这个十进制小数,因此会出现无限循环,这就是所谓的进位误差
- 4) F类型
不能显示高精度数据
DATA: gv_p TYPE f VALUE '2.5635635'."从结果可以看出f类型在输出高精度数据时会无限趋近但不能等于该值
WRITE:gv_p.
PS: 从结果可以看出f类型在输出高精度数据时会
无限趋近但不能等于
该值!
字符串型
(一) 文本型 C
- 1) 用于定义
文字
、数字
、特殊文字
DATA: gv_c_1 TYPE c LENGTH 5 VALUE '你好',
gv_c_2(5) TYPE c VALUE 12345,
gv_c_3 TYPE char25 VALUE '$%^&*'.
WRITE:/ gv_c_1, / gv_c_2, / gv_c_3.
- 2) 使用C类型时需
指定长度
,否则默认为一位长度
PS: 下面是
不指定长度
的示例代码以及演示效果。
DATA: gv_c_1 TYPE c VALUE 12345."不指定长度,默认为一位长度
WRITE:/ gv_c_1.
PS: 下面是
指定长度
的示例代码以及演示效果。
DATA: gv_c_1 TYPE c VALUE 12345 LENGTH 5."指定长度,长度位数与默认值位数一致
DATA: gv_c_2 TYPE c VALUE 123456 LENGTH 8."指定长度,长度位数大于默认值位数
DATA: gv_c_3 TYPE c VALUE 123456 LENGTH 4."指定长度,长度位数小于默认值位数
WRITE: / gv_c_1, / gv_c_2, / gv_c_3.
- 3) 使用C类型指定长度,语法拥有多种,下面几个例子的
表达均不同但是效果一致
DATA: gv_c_1 TYPE c LENGTH 5 VALUE 12345,
gv_c_2(5) TYPE c VALUE 12345,
gv_c_3 TYPE char5 VALUE 12345.
WRITE:/ gv_c_1, / gv_c_2, / gv_c_3.
- 4) 当使用C类型定义数字时,若定义长度超过数字长度,则自动在数字前面补齐空字符串
DATA: gv_c_1 TYPE c LENGTH 5 VALUE 12345,
gv_c_2 TYPE c LENGTH 20 VALUE 12345.
WRITE:/ gv_c_1, / gv_c_2.
(二) 数字文本型 N
- 1) 用于显示C类型数字,以字符串形式显示整数
DATA: gv_n TYPE n LENGTH 5 VALUE 12345.
WRITE:/ gv_n.
- 2) 指定长度位数超过默认值位数时,补充前导0输出
DATA: gv_n TYPE n LENGTH 6 VALUE 12345.
WRITE:/ gv_n.
- 3) 使用
N类型
时需指定长度,否则默认为一位长度
PS: 下面是
不指定长度
的示例代码以及演示效果。
DATA: gv_n TYPE n VALUE 12345.
WRITE:/ gv_n.
PS: 下面是
指定长度
的示例代码以及演示效果。
(三) 日期型 D
- 1) 用于显示
日期
类型(关于sy-datum
和sy-datlo
的区别将在后续文章中进行讲解)
DATA: gv_d_1 TYPE d ,
gv_d_2 TYPE d .
gv_d_1 = sy-datum.
gv_d_2 = sy-datlo.
WRITE:/ gv_d_1, / gv_d_2.
(四) 时间型 T
- 1) 用于显示
时间类型
(时间类型以秒s
作为单位)
DATA: gv_t TYPE t.
gv_t = sy-uzeit.
WRITE:/ gv_t.
固定长类型
ABAP中提供了8种固定长度
的基本预定义数据类型,罗列如下:
固定长类型 | 默认长度 | 有效长度 | 默认值 | 解释说明 |
---|---|---|---|---|
I | 4 | 4 | 0 | 整型 |
F | 8 | 8 | 0 | 浮点型 |
P | 8 | 1~16 | 0 | 压缩数类型(将两个十进制数字压缩到一个字节) |
C | 1 | 1~65535 | ‘…’ | 文本型 |
D | 8 | 8 | ‘00000000’ | 日期型(YYYYMMDD) |
N | 1 | 1~65535 | ‘0…0’ | 数字字符串类型(0~9之间的字符组成的数字字符串) |
T | 6 | 6 | ‘000000’ | 时间类型(格式:HHMMSS) |
x | 1 | 1~65535 | X’0…0’ | 十六进制字段 |
不定长类型
ABAP中提供了STRING
不定长类型
不定长类型 | 默认长度 | 有效长度 | 默认值 | 解释说明 |
---|---|---|---|---|
STRING | 0 | ANY | SPACE | 字符串类型 |
文末福利 | 好书推荐
本期给大家推荐的书籍是袁龙老师编著的《Node.js 从基础到项目实战》
,“锦匠特效” Web前端工具网站作者、51CTO人气讲师力作
!
本书以理论结合实践的形式,讲解了Node.js基础、框架、进阶知识和项目实践。本书为视频教学版,每-章节都有相对应的视频讲解,通过视频讲解可快速切入主题,提高学习效率。
全书分为4大部分,共13章,分别是Node.js基础入门
、Node.js框架
、Node.js 进阶
以及企业项目实践
。本书旨在帮助读者轻松、透彻地掌握Node.js技术,领悟到Node.js的开发精髓,快速提升至Node.js专业开发水平,真正迈入全栈工程师
的行列。
本期福利:送书三本,参与链接见文末!
618,清华社 IT BOOK 多得图书活动开始啦!
活动时间为2023年6月7日至6月18日
,清华社为您精选多款高分好书,涵盖了 C++、Java、Python、前端、后端、数据库、算法与机器学习等多个IT开发领域,适合不同层次的读者。
全场5折,扫码领券更有优惠哦!快来京东点击链接 IT BOOK 多得查看详情吧!
参与福利
- 抽奖方式:评论区
随机爬取评论
抽取3位小伙伴
免费送出!- 参与方式:关注博主、点赞、收藏、评论区优质评论
【评论不被折叠!】
或者回复【人生苦短,开发用Node!
】即可(切记要点赞+收藏,否则抽奖无效,每个人最多评论三次!
)- 活动截止时间:2023-06-14 18:00:00
- 京东自营店购买链接:《Node.js 从基础到项目实战》
名单公布时间:2023-06-14 19:00:00