点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
作为程序的一部分,我从KONP获取了KBETR。
KBETR定义为DEC长度11和小数2,但出于计算目的,我希望小数为5位。 因此,我要声明一个带小数点5的P型变量。
问题:
1。 在数据字典级别,KBETR基于域WERT6,长度为11,小数为2。O/P长度为16。 参照KBETR定义的变量的最大位数为'123456789.22'。 转换为123,456,789.22,即15个字符(包括一个符号)...为什么将O/P长度设置为16?
2。 为了在ABAP程序中定义类似于KBETR但带有5位小数的P变量,该P变量的长度应为多少。基于SAP文档,我看到以下内容:
DEC1-310打包数字 BCD格式p,长度(m + 1)/2因此,我宣布:
数据:var类型p长度6 [(m + 1)/2]十进制5。(由于KBETR的长度为11,所以长度为6)。 但是使用此声明,将值123456789.22分配给类型P的变量时会出现溢出。
您能帮我理解必要的转换吗?
谢谢
Vikram.M
应该使用奇数个位置 用于根据内置类型DEC定义数据类型。 这些值以BCD格式存储,在ABAP中(数据类型p)只能有奇数个位置,因为半字节用于符号。 但是,如果数据类型DEC的字符数为偶数,则关联的ABAP类型p的长度会四舍五入,因此包含次高的奇数位。 例如,这可能导致溢出,然后导致在写入数据库表时发生异常。
论坛上有数百种关于KONP-KBETR的问题和答案,不能吗? 找到答案?
一周热门 更多>