ABAP中将字符格式的金额转换为数值的函数
函數名:UNITS_STRING_CONVERT
作用:根據當前用戶的金額顯示方式,將帶有分隔符的金額(字符型)轉換為P類型的數值。例如:將“1,000.123”轉換為 1000.123
(我一開始的時候是用replace將逗號替換掉,然后直接賦值給一個數值型的變量.但是通用性不太好)
先說說sap的數字顯示的三種方式:
1. 小數點是逗號,分隔符是句號? N.NNN,NN(歐洲人的方式很奇怪:))?????
2.小數點是句號,分隔符是逗號 N,NNN.NN?
3.小數點是逗號,分隔符是空格 N NNN,NN
系統以哪種方式顯示,存儲在用戶表USR01的DCPFM字段,值分別是"空"?、“X”、“Y”。
調用函數的時候將這個字段將作為其中的一個輸入參數.函數會根據當前顯示轉換.
例如:
DATA:?l_clabs?TYPE?p?DECIMALS?3,
??????????l_dcpfm?LIKE?usr01-dcpfm.
SELECT?SINGLE?dcpfm?INTO?l_dcpfm
??????FROM?usr01
??????WHERE?bname?=?sy-uname.
CALL?
FUNCTION?'UNITS_STRING_CONVERT'
??EXPORTING
????units_string???????=?'123,456.789'
????dcpfm??????????????=?l_dcpfm??????"此時為X
*?????MLLN???????????????=?'M'
*?????TSND???????????????=?'T'
??IMPORTING
????units??????????????=?l_clabs
??EXCEPTIONS
????invalid_type???????=?1
????OTHERS?????????????=?2.
總結
以上是生活随笔為你收集整理的ABAP中将字符格式的金额转换为数值的函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: abap 选择屏幕事件AT SELECT
- 下一篇: ABAP日期函数应用