任务:我有data col(30) TYPE c VALUE '-1111,45'.
,需要检查该值是否为负,如果为负,请进行类型转换。但是在输出上我得到了5,尽管我必须得到1111,45而没有减号,然后再次将类型转换为先前的类型(с)。
REPORT Z_CAST.
data col(30) TYPE c VALUE '-1111,45'.
data numc type n.
numc = col.
if numc < 0.
numc = -1 * numc.
endif.
col = numc.
WRITE col. "Output: 5
答案 0 :(得分:1)
REPORT Z_CAST.
data col(30) TYPE c VALUE '-1111,45'.
if col+0(1) EQ '-'.
WRITE col+1. "1111,45
endif.
答案 1 :(得分:1)
这是执行此操作的最小字符处理方式:
col = replace( val = col
sub = '-'
with = ' ' ).
您不必先找到-
即可替换它。
答案 2 :(得分:0)
这是ABAPers通常会选择的干净数字方式:
geom_ribbon
请注意,这对您的示例DATA n TYPE p LENGTH 12 DECIMALS 2.
n = col.
n = abs( n ).
来说不不起作用:ABAP期望将点'-1111,45'
作为小数点分隔符,但您的数字使用带逗号{{ 1}},因此您必须首先将数字标准化。