abap number有小数点吗

abap number有小数点吗,第1张

ABAP中,NUMB是数字字符串,里面不能带小数点,这种类型是有固定长度的,如果定义长度为3,当它的值是1的时候,它里面的实际存储值是001,这种类型可以用于concatenate进行字符串拼接的,而其他数字类型是不行的

另外,数据字典中,如果要用到有小数点的数字类型,就用DEC

你可以在定义FIELDCAT使用这么定义

STR_LVC_FCAT-DATATYPE= 'DEC'.

STR_LVC_FCAT-INTLEN = 15.

STR_LVC_FCAT-DECIMALS= 4.

这样就就可以有负数和求不在自动除以一万了。不知道可以解决你的问题吗?

数据类型的作用:用来定义数据变量。

ABAP按照定义的方式

1.预定义数据类型:SAP中预定义的类型

关于预定义数据类型:

数字类型:

I(整数类型) 默认初始值是0(4Byte)

P(小数类型)默认初始值是0  在定义数据类型P时,需要指定小数位数。(8byte)(可变长度为1-16byte)

P类型1字节前两位由数字构成,后面几位是符号位。

如:DATA test TYPE P LENGTH 10 DECIMALS  3.

        这里定义了一个p型变量test 长度是10,小数位数是3.

字符类型:

C(char/文本类型) 默认初始值为空(1byte)

D(日期类型) 格式为:YYYYMMDD  默认初始值是'00000000'.(8byte)sy-datum(存储当天日期的变量)

T(时间类型) 格式为: HHMMSS 默认初始值是‘000000’(6byte)sy-uzeit(存储现在时刻的变量)

字符串类型:STRING 默认长度为0,有效长度为任意长度,默认值为空字符串。

                         这表示定义STRING类型变量不需要指定长度

在定义预定义数据类型时,我们知道所有数据类型都具有初始值,那么使用VALUE选项就可以设置初始值

如果使用VALUE IS INITAL语句,则变量使用默认初始值。(省略此语句,结果相同)

这里就知道了预定义数据类型可以分为:1.预定义可变长度数据类型

                                                                  2.预定义固定长度数据类型

在定义预定义数据类型的变量时,D,F,I不用指定长度,而C,N,X需要指定其长度,其中类型P

还需要指定小数位数。(DECIMALS).

2.全局数据类型(数据字典类型):SE11里定义的数据类型, 所有程序都可以使用的数据类型 。

全局数据类型顾名思义就是所有程序都可以使用的数据类型。

3.局部数据类型(用户自定义的数据类型):用户程序中 使用TYPES关键字来自定义的数据类型

如:TYPES ty_var_c10 TYPE c LENGTH 10. "这里就定义了一种长度为10的字符类型ty_var_c10

DATA,TYPES,和TYPE 的区别

DATA 是用来直接声明实际的变量,可以指定变量类型是 预定义类型或自定义类型

DATE c1 TYPE c LENGHT 10.

TYPES是用来定义局部数据类型的,定义的是类型而不是变量

TYPES ty_var_c10 TYPE c LENGTH 10.

这里的ty_var_c10 就时用户自定义的数据类型。

TYPE是用来指定类型的,当TYPE和DATA关键字一起使用时,则是用于定义变量的类型;

当TYPE和TYEPES关键字一起使用时,就是用于定义自定义类型。

LINK(用来定义数据变量的类型)

DATA: gv_num3  LINK gv_num1. 这里LINK的作用就是定义变量gv_num3且它的数据类型为gv_num1.

按结构区分的数据类型

基本数据类型:固定长度数据类型

                          可变长度数据类型

参考数据类型:数据参考类型

                          对象参考类型

复杂数据类型:结构类型

                          表类型


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9936103.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存