问题:abap编译错误:Overflow when converting "1.12345e+12"

1、原因:数字计算溢出。

解决方案:

  • 修改结构表(修改数据类型为CURR,QUAN明明是数量字段)
  • 设置溢出提示
  • 显示在内表的数值转换一下数值格式再进行计算
    (使用p类型计算未报错,引用QUAN类型提示“Overflow when converting 12345678912.3”)

(ps:。。。梯度木!)


数据字典

1、ABAP字典中基本的数据类型
ACCP 记账周期YYYYMM
CHAR 字符串
CLNT 集团
CUKY 货币关键字,被CURR字段引用
CURR 货币字段,作为DEC存储
DATS 日期字段(YYYYMMDD)用8个字符存入
DEC 计数器或带有逗号和正负号的数值区
FLTP 浮点数,精确到8个字节
INT1 1 字节整数,整数<=225
INT2 2 字节整数,仅用于LCHR或LRAW前的长度字段
INT4 4 字节整数,带符号的十进制数
LANG 语言代码
LCHR 长字节串,要求前面的INT2字段
LRAW 长字节串,要求前面的INT2字段
NUMC 只有数字的字符串
PREC 一个QUAN字段的精确
QUAN 数量字段,指向带UNIT格式的单位字段
RAW 不解释的字节排序
RAWSTRING
SSTRING
STRING 可变长度字节串
TIMS 时间栏(小时分钟键秒),作为6位字符存储
UNIT QUAN字段单元键

2、视图、表、结构体、数据元素和域的关系图
转载推荐: https://wenku.baidu.com/view/253ddbfaa5e9856a561260da.html

问题:abap编译错误:Overflow when converting "1.12345e+12"

2、 【转载】 参考资料:
(1)SAP中数字计算时溢出捕获
————————————————
https://www.cnblogs.com/ruingy/p/3671926.html

(2)ABAP将科学计数法转成字符串
————————————————
版权声明:本文为****博主「SAP-Joker」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.****.net/huanglin6/article/details/99941354

(3)P类型和词典预定义类型与ABAP类型映射
————————————————
https://www.cnblogs.com/jiangzhengjun/p/7264657.html#_Toc410466842
【转载】
问题:abap编译错误:Overflow when converting "1.12345e+12"

(4)ABAP转换函数
————————————————
版权声明:本文为****博主「关耳山石」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.****.net/asdfak/article/details/5827233

(5)关于数字运算溢出的推想
————————————————
https://www.iteye.com/blog/tianyangw-1998822

(6)ABAP预定义数据类型DEC和CURR的区别
————————————————
http://www.baidusap.com/abap/ddic/5092