我知道ALV输出时可以控制小数数位。可是现在业务部门有这样一个需求,比如说,如果系统数量是7.000的时候输出为整数7,如果系统数量是7.050的时候输出为7.05,如果系统数量是7.056的时候输出为7.056。有什么好办法处理么?谢谢。
Blog作者的回复:
LIKE THIS:
.....
ls_fieldcat-edit_mask = '==ZZERO' .
.....
FUNCTION conversion_exit_zzero_output.
*"----------------------------------------------------------
*"Local interface:
*" IMPORTING
*" VALUE(INPUT) OPTIONAL
*" EXPORTING
*" REFERENCE(OUTPUT)
*"-----------------------------------------------------------
DATA: str TYPE string ,
str2 TYPE string .
str = input.
CONDENSE str NO-GAPS.
SPLIT str AT '.' INTO str str2.
SHIFT str2 RIGHT DELETING TRAILING '0' .
CONDENSE str2.
CONCATENATE str '.' str2 INTO str.
SHIFT str RIGHT DELETING TRAILING '.' .
output = str.
ENDFUNCTION.
**************************************
*只是针对正数的情况,如果是负数请自行调整程序