数据类型表:

类型缩写

类型

默认长度

允许长度

初始值

描述

C

文本型

1

 

Space

字符串数据,如'Program'

D

日期型

8

8

'00000000'

日期数据,格式为YYYYMMDD

F

浮点型

8

8

0

浮点数

I

整型

4

10

0

带正负符号的整数

N

数值型

1

31

'00…0'

数值所组成的字符串

P

压缩型

8

16

0

将两个 十进制数字压缩到一个字节

T

时间型

6

6

'000000'

时间

P类型(压缩型)数据

是一种压缩的定点数,其数据对象占据内存字节数和数值范围取定义时指定的整个数据大小和小数点后位数,如果不指定小数位,则将视为I类型。其有效数字位大小可以是从1~31位数字(小数点与正负号占用一个位置,半个字节),小数点后最多允许14个数字。

P类型的数据,可用于精确运算(这里的精确指的是存储中所存储的数据与定义时字面上所看到的大小相同,而不存在精度丢失问题——看到的就是内存中实实在在的大小)。在使用P类型时,要先选择程序属性中的选项 Fixed point arithmetic(即定点算法,一般默认选中),否则系统将P类型看用整型。其效率低于I或F类型。

"16 * 2 = 32表示了整个字面意义上允许的最大字面个数,而14表示的是字面上小数点后面允许的最大小数位,而不是指14个字节,只有这里定义时的16才表示16个字节

DATA: p(16) TYPE p DECIMALS 14 VALUE '12345678901234567.89012345678901'.

"正负符号与小数点固定要占用半个字节,一个字面上位置,并包括在这16个字节里面。 "16 * 2 = 32位包括了小数点与在正负号在内 "在定义时字面上允许最长可以达到32位,除去小数点与符号需占半个字节以后 "有效数字位可允许31位,这31位中包括了整数位与小数位,再除去定义时小 "数位为14位外,整数位最多还可达到17位,所以下面最多只能是17个9 DATA: p1(16) TYPE p DECIMALS 14 VALUE '-99999999999999999'.

"P类型是以字符串来表示一个数的,与字符串不一样的是,P类型中的每个数字位只会占用4Bit位,所以两个数字位才会占用一个字节。另外,如果定义时没有指定小数位,表示是整型,但小数点固定要占用半个字节,所以不带小数位与符号的最大与最小整数如下(最多允许31个9,而不是32个) DATA: p1(16) TYPE p  VALUE '+9999999999999999999999999999999'. DATA: p2(16) TYPE p  VALUE '-9999999999999999999999999999999'.

其实P类型是以字符串形式来表示一个小数,这样才可以作到精确,就像Java中要表示一个精确的小数要使用BigDecimal一样,否则会丢失精度。

DATA: p(9) TYPE p DECIMALS 2 VALUE '-123456789012345.12'. WRITE: / p."123456789012345.12-

DATA: f1 TYPE f VALUE '2.0',       f2 TYPE f VALUE '1.1',       f3 TYPE f. f3  =  f1 - f2."不能精确计算 "2.0000000000000000E+00 1.1000000000000001E+00 8.9999999999999991E-01 WRITE: / f1   , f2 , f3.

DATA: p1 TYPE p DECIMALS 1 VALUE '2.0',       p2 TYPE p DECIMALS 1 VALUE '1.1',       p3 TYPE p DECIMALS 1. p3  =  p1 - p2."能精确计算 WRITE: / p1   , p2 , p3. "2.0               1.1               0.9

Java中精确计算:

publicstaticvoid main(String[] args) {

System.out.println(2.0 - 1.1);// 0.8999999999999999

System.out.println(sub(2.0, 0.1));// 1.9

}

publicstaticdouble sub(double v1, double v2) {

BigDecimal b1 = new BigDecimal(Double.toString(v1));

BigDecimal b2 = new BigDecimal(Double.toString(v2));

return b1.subtract(b2).doubleValue();

}

ABAP数据类型的更多相关文章

  1. 【ABAP系列】SAP ABAP基础-abap数据类型的解析整理

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP基础-abap数 ...

  2. ABAP基础2:数据类型

    数据类型-Data Type:定义程序中可以使用的数据类型,使用前要先定义 数据变量-Data Variable:参照数据类型定义的.可以存储值的变量,就是变量嘛 数据类型 数据类型在ABAP程序中用 ...

  3. SAP 数据类型

    数据元素和基本类型对应关系 数据字典预置类型 ABAP类型 运行长度 说明 ACCP N(6) 6 会计计算周期 CHAR C(n) 1-255 字符 CLNT C(3) 3 集团,数据区域代码 CU ...

  4. SAP-ABAP系列 第二篇SAP ABAP开发基础

    第二章SAP ABAP开发基础 1.ABAP数据类型及定义 ABAP程序中共包含8种基本数据类型定义, 类型名称 描述 属性 C Character Text (字符类型) 默认长度=1,默认值 = ...

  5. 【ABAP系列】SAP ABAP 带有参数的AMDP的创建

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 带有参数的AM ...

  6. 使用ABAP Data Validator验证数据有效性

    在日常的开发过程中,我们常常要处理不同来源的数据.数据可能来自不可靠的外部系统.不可靠的用户输入和甚至设计有误的数据库表,因此,对数据有效性进行验证是必要的工作. 开源工具ABAP Data Vali ...

  7. ABAP基础4:模块化

    子程序定义 以form开始,以endform结束,用perform语句调用,from语句可以在程序内部/外部,perform一定要写在前面 perform. from. 子程序模块 endform. ...

  8. ALV用例大全

    一.ALV介绍  The ALV Grid Control (ALV = SAP List Viewer)是一个显示列表的灵活的工具,它提供了基本功能的列表操作,也可以通过自定义来进行增强,因此可以允 ...

  9. ALV详解:Function ALV(二)

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

随机推荐

  1. Windows WMIC命令使用详解2

    Windows WMIC命令使用详解(附实例) https://blog.csdn.net/aflyeaglenku/article/details/77878525 第一次执行WMIC命令时,Win ...

  2. 从0起步 BI 第一课

    收集 BI 学习资料(了解,书籍,示例demo) 专业人士: http://www.cnblogs.com/aspnetx/p/3189029.html http://www.flybi.net/ h ...

  3. Repeater 和 GridView 中数据格式化

    GridView中显示两位小数: <asp:BoundField DataField="investmoney" DataFormatString="{0:f2}& ...

  4. 《Java多线程编程核心技术》读后感(二)

    方法内的变量为线程安全 package Second; public class HasSelfPrivateNum { public void addI(String username) { try ...

  5. jQuery 操作select 下拉列表

    jQuery这个框架方便了我们对于HTML元素的操作,本来以为自己对于Select操作也算是熟悉了,但上午在测试的时候才发现自己了解的还真不多. 看了一下jQuery的一些方法后,理出了一些常用的方法 ...

  6. 推荐一款让你纵横Github的读码神器

    当我们想深入了解一个开源项目的时候,通常我们有以下几种姿势: 懒汉型 通过Web的方式,逐个的点击页面寻找和查看具体的源码内容. 优点:不依赖任何工具,无须任何额外的操作 缺点:效率低下,查找文件不便 ...

  7. 【转】生产环境:Nginx高可用方案

    准备工作: 192.168.16.128 192.168.16.129 两条虚拟机.安装好 Nginx 安装Nginx 更新 yum 源文件: rpm -ivh http://nginx.org/pa ...

  8. HyperLedger Fabric 多机部署(二)

    启动各个节点: ./orderer order节点启动方式 ./peer node start peer节点启动方式 Admin@org1.example.com 使用hyperledger fabr ...

  9. Bzoj3315 [Usaco2013 Nov]Pogo-Cow(luogu3089)

    3315: [Usaco2013 Nov]Pogo-Cow Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 352  Solved: 181[Submit ...

  10. CSS中rem、em的区别

    引用文档:http://www.divcss5.com/html/h529.shtml:http://blog.csdn.net/qq_35432904/article/details/5180422 ...