ABAP数据类型

数据类型表:

类型缩写

类型

默认长度

允许长度

初始值

描述

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();

    }

转载于:https://www.cnblogs.com/miaosj/p/10280733.html

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

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

相关文章

cocos2d-x C++ 原始工程引擎运行机制解析

新建一个工程,相信感兴趣的同学都想知道cocos引擎都是如何运行的 想知道是如何运行的,看懂四个文件即可 话不多说,上代码: 1、首先解释 AppDelegate.h 1 #ifndef _APP_DELEGATE_H_2 #define _APP_DELEGATE_H_3 4 #include "…

web高德maker动画_Web Maker —我如何构建一个快速的离线前端游乐场

web高德maker动画by kushagra gour由kushagra gour Web Maker —我如何构建一个快速的离线前端游乐场 (Web Maker — How I built a fast, offline front-end playground) Web Maker is a Chrome extension that gives you a blazing fast and offline front-end playground —…

时间小知识对于时间转换可能有帮助

那么UTC与世界各地的时间应如何换算呢?它是将全世界分为24个时区,地球的东、西经各180(共360)被24个时区平分,每个时区各占15。以经度0(即本初子午线)为基准,东经730′与西经730′之间的区域为零时区;东经和西经的730′与2230′之…

JS——实现短信验证码的倒计时功能(没有验证码,只有倒计时)

1、功能描述 当用户想要获取验证码时,就点击 免费获取验证码 ,然后开始倒计时,倒计时期间按钮文字为剩余时间x秒,且不可按状态,倒计时结束后,按钮更改为点击重新发送。 2、分析 必须用到定时器。按钮点击后…

华为OV小米鸿蒙,华为鸿蒙开源,小米OV们会采用吗?

华为曾一直声言不会进入电视市场,由此其他国产电视企业才会采用华为的可见企业是非常担忧同业竞争关系的,而在智能手机市场,华为毫无疑问与其他国产手机企业都是竞争对手,更何况就在2019年下半年和2020年上半年华为在国内手机市场的份额超过四成直逼五成,其他国产手机企业被压得…

第22天:如何使用OpenAI Gym和Universe构建AI游戏机器人

by Harini Janakiraman通过哈里尼贾纳基拉曼 第22天:如何使用OpenAI Gym和Universe构建AI游戏机器人 (Day 22: How to build an AI Game Bot using OpenAI Gym and Universe) Let’s face it, AI is everywhere. A face-off battle is unfolding between Elon Musk…

软件测试基础理论(总结)

1. 软件的三个要素:程序(实行特定功能的代码) 文档(支持代码运行) 数据(支持程序运行一切有关) 2. 软件的产品质量 指的是? 1)质量是指实体特性…

android studio 7200u,#本站首晒# 多图杀猫 华为MateBook X上手体验

#本站首晒# 多图杀猫 华为MateBook X上手体验2017-06-09 18:45:4437点赞33收藏78评论前几天华为开了个发布会,带来了三款笔记本电脑,有幸在第一时间借到了MateBook X,现在就来来做一个简单的上手,稍晚一些再跟大家详细聊聊使用起来…

svn强制解锁的几种做法

标签: svn强制解锁2013-12-16 17:40 12953人阅读 评论(0) 收藏 举报分类:SoftwareProject(23) 版权声明:本文为博主原创文章,未经博主允许不得转载。 作者:朱金灿 来源:http://blog.…

数据结构和算法练习网站_视频和练习介绍了10种常见数据结构

数据结构和算法练习网站“Bad programmers worry about the code. Good programmers worry about data structures and their relationships.” — Linus Torvalds, creator of Linux“糟糕的程序员担心代码。 好的程序员担心数据结构及其关系。” — Linux的创建者Linus Torva…

突然讨厌做前端,讨厌代码_有关互联网用户最讨厌的广告类型的新数据

突然讨厌做前端,讨厌代码You know that feeling when you’re scrolling through a blog post and then — BAM! — one of those “Sign up for our newsletter” modals pops up?当您滚动浏览博客文章,然后-BAM时,您就会知道这种感觉。 -弹出“注册我…

iOS设计模式-生成器

定义&#xff1a;将一个产品的内部表象与产品的生成过程分割开来&#xff0c;从而可以使一个建造过程生成具有不同的内部表象的产品对象。 类型&#xff1a;对象创建 类图&#xff1a; #import <Foundation/Foundation.h> interface Character : NSObject property(nonat…

《Android 应用案例开发大全(第二版)》——导读

本节书摘来自异步社区《Android 应用案例开发大全&#xff08;第二版&#xff09;》一书中的目录 &#xff0c;作者 吴亚峰 , 于复兴 , 杜化美&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 目 录 第1章 初识庐山真面目——Android简介 1.1 Android的诞生 1…

模块--sys模块

sys模块是与python解释器交互的一个接口 import sys sys.path #python解释器找模块的环境变量import sys print(sys.path)结果:[H:\\王文静\\python\\4练习\\课堂练习, H:\\王文静\\python, C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\pyth…

匿名方法

与前面的可空类型是一样的&#xff0c;匿名方法也是C# 2.0里面提出来的。 1 匿名方法 1.1 什么是匿名方法&#xff1f; 顾名思义&#xff0c;就是没有名称的方法&#xff0c;因为没有名称&#xff0c;匿名方法只能在函数定义&#xff08;匿名方法是把方法的实现和定义嵌套在了一…

使用React,Redux和Router进行真正的集成测试

by Marcelo Lotif通过马塞洛洛蒂夫(Marcelo Lotif) 使用React&#xff0c;Redux和Router进行真正的集成测试 (Real integration tests with React, Redux and Router) After being bitten a couple of times by bad refactoring and a broken app — even with all my tests…

Go语言从入门到精通 - 数据类型转换

本节核心内容 介绍 Go语言数据类型转换的格式介绍 数据转换代码示例介绍 数据转换过程中的注意事项 本小节视频教程和代码&#xff1a;百度网盘 可先下载视频和源码到本地&#xff0c;边看视频边结合源码理解后续内容&#xff0c;边学边练。 Go语言数据类型转换 Go 语言使用类型…

JNI通过线程c回调java层的函数

1、参看博客&#xff1a;http://www.jianshu.com/p/e576c7e1c403 Android JNI 篇 - JNI回调的三种方法&#xff08;精华篇&#xff09; 2、参看博客&#xff1a; JNI层线程回调Java函数关键点及示例 http://blog.csdn.net/fu_shuwu/article/details/41121741 3 http://blog.cs…

signature=f7a4b29b93ef2b36608792fdef7f454a,Embedding of image authentication signatures

摘要&#xff1a;A method (), an apparatus, a computer readable medium and use of said method for authenticating an audio-visual signal (), such as a digital image or video, are disclosed. A signature is derived from all image regions, including areas with …

glob

主要是用来在匹配文件&#xff0c;相当shell中用通配符匹配. 用法: glob.glob(pathname) # 返回匹配的文件作为一个列表返回 glob.iglob(pathname) # 匹配到的文件名&#xff0c;返回一个迭代器 ps: pathname是路径, 可以是绝对和相对路径 匹配当前目录下有一个数字开头…