永发信息网

ABAP/4常量定义问题

答案:3  悬赏:30  手机版
解决时间 2021-12-28 09:54
constants c(3) type p decimals 4 value '3.12345'. 这样写ok,但是
constants c(3) type p decimals 5 value '3.12345'. 这样写就崩溃,为什么?还请高手给个解答,谢啦
最佳答案
下面是我点F1后的帮助中P类型的取值范围的公式:
(-10^(2len -1) +1) / (10^(+dec)) to (+10^(2len -1) -1) /(10^(+dec))

变型一下,整数部分+小数部分
-10^(2len-1-dec) + 10^(-dec) 到 10^(2len-1-dec) - 10^(-dec)
在整数部分的指数中,
len = 3, dec = 4时, 2*3-1-4 = 1,存在整数部分;
len = 3, dec = 5时, 2*3-1-5 = 0,整数部分指数为0,这样就无意义了。
全部回答
你可以写一个测试程序, ***************************** constants c(3) type p decimals 4 value '3.12345'. write c. ***************************** 运行后,你会发现输出的c为3.1235. 这是因为你在定义常量的时候,指定了小数的位数为4位,所以程序在初始化的时候,会先将3.12345进行四舍五入,达到你的定义要求,然后再把这个数赋予常量c,所以在赋值时不会有任何问题。 但是,当你定义的c的小数位为5位时,系统就不会对3.12345进行任何处理,而直接把这个数值赋予常量c。 那么p型作为Packed number,其定义为3时的实际长度为6,其中包含了小数点和符号位,实际使用可能的位数为5(仅针对本例来说),所以第二种定义方法的时候,在程序初始化,给常量赋值的时候会出现Overflow的错误。 ************************************************************************ 附件:SAP help对于P型数据的解释 All predefined ABAP types for which a length interval is specified in second column in the table are generic, which means that the length is not part of the type description. For the type p, the fractional portion is indefinite as well as the length.
1. 你写的代码是怎样的?有可能是没注意data和types的区别。types c1(30) type c.data itab1 type table of c1.data c2(30) type c.data itab2 like table of c2.2. char30是一个data element,相当于data typechar, length 303. char是数据字典中的一种数据类型(同类的有accp、dats、quan等), c是abap中的数据类型(同类的有c、n、d、t、x、i、p、f、string、xstring)。数据字典中的数据类型是user interface层对数据的分类,用这种分类定义的table field 、structure field或data element用在abap程序时,abap处理器会把它转换成c,n,d这样的类型。在数据库中创建表时,数据字典的数据类型就会转换成数据库系统所用的类型。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
第一次见面,男票让我坐他腿上,话说他让我坐
耶稣是我的方向
只要你留心,生活中处处有化学.经常自己洗衣
衡阳市祝融小学标识码
单选题关于凸透镜成像,下列说法中不符合成像
结婚17年,丈夫外面生儿子逼妻子生儿子要不就
—Do you know the girl is standing the t
梦见从电梯掉下来
我老婆快五十了性欲很强,半年没在一起了,你说
FGO吉尔德雷厉害吗 FGO吉尔德雷技能属性详解
如图,若AD=CD=BD,∠A=25°,则∠BCD=______
微博上盛传的多起“熬夜猝死”新闻是否是谣言
怎么设置空间背景掉落的东西
We have done things we ought not to have d
圆通快递山东济南到武汉要多久
推荐资讯
主角是受的gl小说,动漫,影视,同人
全国共有多少家银行
阿修罗带别云剑好还是七支刀好?
金立m6plss手机安全中心在哪
Atlasttheyclimbedupthemountain,onthetopof
当男友生气道歉都没用时,还能怎么做?
霸道提不起速度
上海哪里的酒店公寓可以提供自己烧饭烧菜的?
厦门哪儿拍婚纱照好
上海虹桥机场距离上海市宝山建配龙距离有多远
非条件反射什么意思
计算机的内存大有哪些好处?谢谢!
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?