我要求使用逗号作为小数分隔符格式化十进制数字,并且没有任何千位分隔符(既不是点也不是空格)。
如果我不想将其作为一个班轮,我不会是我自己,但是我无法找到这样的解决方案。
我现在所拥有的解决方法是。
DATA: l_value TYPE p LENGTH 9 DECIMALS 2 VALUE '-3450354.25'.
DATA(l_formatted_value) = |{ l_value SIGN = LEFTSPACE COUNTRY = 'DE ' }|.
REPLACE ALL OCCURENCES OF '.' IN l_formatted_value WITH ''.
WRITE: l_formatted_value.
我尝试使用NUMBER = RAW
选项,但后来我似乎找不到一个简单的方法来将小数点分隔符指定为逗号。
DATA(l_formatted_value) = |{ l_value SIGN = LEFTSPACE NUMBER = RAW }|.
REPLACE '.' IN l_formatted_value WITH ','.
如何将其作为一个班轮来实现?我也想避免使用WRITE
。
答案 0 :(得分:4)
很好的挑战,这里是一个单行,我发现它适用于您的数据定义。我试图让它对任意数量的小数都是通用的,但事实证明这很难。请注意,它不会总是在十进制字符后显示两位数,例如12.50将显示为12,5。
|{ trunc( l_value ) },{ trunc( frac( l_value ) * 100 ) }|
我很好奇其他人的发现。