使用逗号作为小数点分隔符且没有千位分隔符的小数格式
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 ) }|
我很好奇其他人发现了什么。
我需要用逗号作为小数点分隔符并且没有任何千位分隔符(点和 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 ) }|
我很好奇其他人发现了什么。