abap 使用数学函数去掉后置0

本文介绍了使用ABAP进行数值计算和字符串操作的方法,包括如何处理浮点数、整数和字符串,通过实例展示了如何进行乘法运算、取整、去除小数点后的零以及反转字符串并去除前置和后置的零。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 data: w_p(13) type p decimals 3 value '12.120',

w_p2(13) type p decimals 3,

w_c(13) type c,

w_i type i value 1.


do 3 times.

w_p2 = w_p * w_i.

if FRAC( w_p2 ) = 0.

exit.

else.

w_i = w_i * 10.

continue.

endif.

enddo.


w_c = TRUNC( w_p2 ) / w_i.


write:/ w_p,"12.120

/ w_p2,"1,212.000

/ w_c ."12.12


另:SHIFT w_c RIGHT DELETING TRAILING '0'.也能实现去掉后置0


附:ABAP关于取整与取小数等数学函数
任意类型参数 ————————————F类型参数

ABS 绝对值   COS、SIN、TAN 三角

SIGN 正数为1,0为0,负为-1  ACOS、。。。。。。。。 反三角

TRUNC 取得整数部分 COSH、SINH、TANH 双曲函数

FRAC 取得小数部分 EXP 底数为E

CEIL 取得不小于输入参数的最小整数  LOG 底数为10

FLOOR取得大小于输入参数的最小整数  LOG10 SQRT(平方根)

 

第二种:

report  ztest131 message-id zmsg line-size 136 line-count 33
no standard page heading.
DATA curr TYPE c.
curr '123,456,789.00 '.
while sy-subrc 0.
replace ',' with '' into curr.
endwhile.
condense curr no-gaps.



"去掉后置0


data p_number(20value '56.500'.

CALL FUNCTION 'STRING_REVERSE'
  EXPORTING
    string          P_number
    lang            '1'
 IMPORTING
   RSTRING         P_number
 EXCEPTIONS
   TOO_SMALL       1
   OTHERS          2
          .
IF sy-subrc <> 0.
 MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

shift P_number left deleting leading '0'.

CALL FUNCTION 'STRING_REVERSE'
  EXPORTING
    string          P_number
    lang            '1'
 IMPORTING
   RSTRING         P_number
 EXCEPTIONS
   TOO_SMALL       1
   OTHERS          2
          .
IF sy-subrc <> 0.
 MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

write:/ P_number.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值