【ABAP】数据类型(二)「预定义数据类型」

news2024/11/19 17:38:43

在这里插入图片描述

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较深入的研究。


💅文章概要: 本文主要对SAP ABAP中预定义数据类型进行一个详细地介绍,在此前文章中我们已经对预定义数据类型有了一个最基本的了解,本文在此基础上会进行更加详细深入细致地讲解,主要包括预定义数据类型的分类


🤟每日一言: 永远年轻,永远热泪盈眶!

目录

  • 预定义数据类型
  • 预定义数据类型分类
    •  数字型
      •   (一) 整数型 I
      •   (二) 小数型 P
      •   (三) 浮点型 F
    •  字符串型
      •    (一) 文本型 C
      •    (二) 数字文本型 N
      •    (三) 日期型 D
      •    (四) 时间型 T
    •  固定长类型
    •  不定长类型
  • 文末福利 | 好书推荐


预定义数据类型

在这里插入图片描述

  在ABAP中,预定义的数据类型包括两种:一种是在系统中已经预定义好的基本数据类型,在【T-CODE:SE38】ABAP编辑器中定义数据对象时可以直接使用的,其中大致有如下最常用的8种:

数据类型默认长度有效长度默认值解释说明
I440整型
F880浮点型
P81~160压缩数类型(将两个十进制数字压缩到一个字节)
C11~65535‘…’文本型
D88‘00000000’日期型(YYYYMMDD)
N11~65535‘0…0’数字字符串类型(0~9之间的字符组成的数字字符串)
T66‘000000’时间类型(格式:HHMMSS)
x11~65535X’0…0’十六进制字段
STRING0ANYSPACE字符串类型

   此外另一种预定义数据类型是在【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.

默认值2.5进行四舍五入运算变为3

  (二) 小数型 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后面的0E+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-datumsy-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种固定长度的基本预定义数据类型,罗列如下:

固定长类型默认长度有效长度默认值解释说明
I440整型
F880浮点型
P81~160压缩数类型(将两个十进制数字压缩到一个字节)
C11~65535‘…’文本型
D88‘00000000’日期型(YYYYMMDD)
N11~65535‘0…0’数字字符串类型(0~9之间的字符组成的数字字符串)
T66‘000000’时间类型(格式:HHMMSS)
x11~65535X’0…0’十六进制字段

 不定长类型

  ABAP中提供了STRING不定长类型

不定长类型默认长度有效长度默认值解释说明
STRING0ANYSPACE字符串类型

文末福利 | 好书推荐

在这里插入图片描述

  本期给大家推荐的书籍是袁龙老师编著的《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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/633180.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【哈希的模拟实现】

文章目录 1 哈希概念2 哈希冲突2.1 直接定址法 (常用)2.2 除留余数法 (常用)2.3 平方取中法2.4 折叠法2.5 随机数法2.6 数学分析法 3 闭散列3.1 线性探测3.2 二次探测 4 开散列4.1 开散列概念4.2哈希桶的模拟实现4.3 开散列与闭散列的比较 1 哈希概念 顺序结构以及平衡树中&…

Science|改变微生物群落可以增强树木对气候变化的耐受性

改变微生物群落可以增强树木对气候变化的耐受性 Shifting microbial communities can enhance tree tolerance to changing climates Research Article,2023-5-25,Science, [IF 63.714] DOI:10.1126/science.adf202 第一作者&…

Java常用快捷键

在编写java代码时,要提升自己的编写代码的速度,光是靠鼠标来完成各种的操作是不行的,还会显得十分不成熟,所以这是就需要我们使用一定的快捷键,在键盘点击之间,完成代码的操作。接下来我就为大家介绍常用的…

7.2DIY可视化后台表格自定义列显示类型

后台表格自定义列显示类型 本教程均在第一节中项目启动下操作 后台表格自定义列显示类型前言一、图片格式内容显示:二. 效果展示: http://localhost:9999/#/hdp三:自定义列使用:1.添加字段:自定义列,取值自幻灯片title2. 设置自定义信息: 三.效果展示本文章原自bilibli作者视频…

6月6日复盘总结 11H10min-|23:15~23:25*

​​​​​​​ 7:20-8:20 背书翻译单词 【1h】 8:30-9:00 乐词 【30min】 9:00-10:00 TPO66 L1 精听 【1h】 10:00-10:30 TPO66 L1 错题分析 【30min】 10:30-11:30 L2 Fish Movement 精听 【1h】 11:40-12:40 午饭+水果🍑+玩手机…

【华为OD统一考试B卷 | 100分】经典屏保(C++ Java JavaScript Python)

题目描述 DVD机在视频输出时,为了保护电视显像管,在待机状态会显示“屏保动画”,如下图所示,DVD Logo在屏幕内来回运动,碰到边缘会反弹。 请根据如下要求,实现屏保Logo坐标的计算算法。 屏幕是一个800*600像素的矩形,规定屏幕的左上角点坐标原点,沿横边向右方向为X轴…

jeecg-boot权限篇

前言 本文档是对jeecg-boot官方文档的一个分析和补充,具体的可以同时互相参照来看,难免个人理解有出路,如有错误,还望补充和指正~ 文章目录 角色、用户、部门普通权限控制特殊定制化权限按钮控制文本输入禁用 列表控制…

碳中和城市建筑能源系统(2):网络篇(龙惟定)2022

碳中和城市建筑能源系统(2):网络篇 摘要 本文是碳中和城市建筑能源系统系列文章的第二篇,分别概要介绍了城市能源系统中的电网、热网和燃气网在碳中和背景下的新概念、新技术及新方法。强调未来的能源网以电网为主,三网融通,构成城区的能源互联网。综述了智能电网的灵活性、热…

我们不会很快有GPT-5;让 ChatGPT 帮我们总结 Hacker News

🦉 AI新闻 🚀 OpenAI联合创始人Sam Altman:我们不会很快有GPT-5 摘要:在2023北京智源大会的“AI安全与对齐”主题论坛上,OpenAI联合创始人Sam Altman表示,目前他们没有答案,不会很快有GPT-5&a…

OpenCV 项目开发实战--对图像种的斑点进行检测(Python、C++代码实现)

什么是斑点? Blob 是图像中一组连接的像素,它们共享一些共同的属性(例如,灰度值)。在上图中,暗连接区域是斑点,斑点检测旨在识别和标记这些区域。 文末附相关测试代码的下载链接 SimpleBlobDetector 示例 OpenCV 提供了一种基于不同特征检测和过滤斑点的便捷方法。让…

es相关的知识点

海量数据下如何提升es的操作性能 .filesystemcache os cache操作系统缓存 es中的数据,实际上写入磁盘,磁盘文件的操作系统,实际上会将数据写入到oscache中 es的搜索引擎严重依赖于底层的filesystemcache 如果filesystemcache的内存足够大,可以容纳所有的index segmentfile索引…

Mac环境下在vs code中配置copilot

1、下载vs code编辑器 2、在GitHub个人设置里,把copilot设为allow,这里涉及要开通服务就不再详述。 3、在vs code插件市场里下载GitHub copilot 安装好了以后根据指示输入你的GitHub账号即可 编译器底部出现copilot图标即表示安装成功 使用方法就是你先…

GD32F4单片机实现接收超时中断+DMA实现串口的不定长接收和DMA发送

1、通常的实现方式介绍 环形缓冲区定时器超时中断的方式 优点 环形缓冲区可以接收多帧数据数据帧超时间隔可以设置 缺点 设备任务比较繁重时,使用中断接收可能会丢失数据。尤其是在长时间关闭中断或者串口中断优先级不高时频繁进出中断。在使用RTOS的系统中&#x…

给第一行单元格赋值 + WPS JS获取工作表的总行数 + WPS JS获取工作表的总行数

戳我,了解更多相关办公的小技巧 给第一行单元格赋值 1、在计算机中有一种ASCII编码,其中A在计算机中的表示的数字是65,a的ascii码是97,b的ascii码是98。 2、从A1到F1可以看到第一个字母在变化,第2个数字始终是1&#x…

过电流保护原理

过电流保护是指当电流超过预定最⼤值时,使保护装置动作的⼀种保护⽅式。当流过被保护原件中的电流超过预先整定 的某个数值时,保护装置启动,并⽤时限保证动作的选择性,使断路器跳闸或给出报警信号。 过电流保护主要包括短路保护和…

北京通信展的精华内容,都在这里!(上篇)

友情提醒:本文图片较多,请大家注意手机流量。 大家好,我是小枣君。 昨天,中国国际信息通信展览会(PT展)在北京正式落幕了。 小枣君全程参加了这场行业盛会。按照惯例,我来给大家汇报一下现场的情…

ChatGPT Prompt 提示词设计技巧必知必会

本文内容整理自图灵社区直播《朱立成:ChatGPT Prompt提示词技巧必知必会》。 朱立成,图灵社区《ChatGPT即学即用》视频课程作者,软件工程师,对新事物充满好奇,关注ChatGPT应用。2001年毕业于浙江大学,从事软…

硬件设计电源系列文章-电路电源设计流程

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 本文主要介绍硬件单板电源设计流程。 整体架构流程 提示:这里可以添加技术整体架构 主要分三部: 电源需求: 根据硬件总体方案,确定各芯片所需的供电电压&#xff1…

go-Context详解

Context详解 简介 官网 context go package context-blog Context是一个很特殊的接口,在go里面主要承担的责任是在边界(方法,线程等)传递上下文,这些上下文包括 取消信号超时时间特殊的参数 需要有几个注意点 …

Tcl常用语法备忘录-字符串篇

TCL语言中的string命令用于对字符串进行操作,常用的有以下几种用法: string length 语法:string length string 参数说明:string为要计算长度的字符串。 示例: set str "Hello TCL" puts [string lengt…