使用逗号作为小数点分隔符且没有千位分隔符的小数格式

Format a decimal with comma as decimal separator and without thousands separator

我需要用逗号作为小数点分隔符并且没有任何千位分隔符(点和 space)格式化十进制数。

如果我不想做一个班轮,我就不是我自己了,但是我一直找不到这样的解决方案。

我现在的解决方法是。

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

不错的挑战,这是我发现的适用于您的数据定义的单行代码。我试图使它对任何小数位数都通用,但事实证明这非常困难。请注意,它不会总是在小数点后显示两位数字,例如12.50 将显示为 12,5.

|{ trunc( l_value ) },{  trunc( frac( l_value ) * 100  ) }|

我很好奇其他人发现了什么。