使用逗号作为小数分隔符,不使用千位分隔符设置小数格式



我有一个要求,用逗号作为十进制分隔符,不带任何千位分隔符(既不是点也不是空格)来格式化十进制数字。

如果我不想把它作为一句话来做,我就不会是我自己,但我一直没能找到这样的解决方案。

我现在的变通办法是。

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  ) }|

我很好奇别人发现了什么。

相关内容

  • 没有找到相关文章

最新更新