ABAP中将字符格式的金额转换为数值的函数
函數(shù)名:UNITS_STRING_CONVERT
作用:根據(jù)當(dāng)前用戶的金額顯示方式,將帶有分隔符的金額(字符型)轉(zhuǎn)換為P類型的數(shù)值。例如:將“1,000.123”轉(zhuǎn)換為 1000.123
(我一開始的時(shí)候是用replace將逗號替換掉,然后直接賦值給一個(gè)數(shù)值型的變量.但是通用性不太好)
先說說sap的數(shù)字顯示的三種方式:
1. 小數(shù)點(diǎn)是逗號,分隔符是句號? N.NNN,NN(歐洲人的方式很奇怪:))?????
2.小數(shù)點(diǎn)是句號,分隔符是逗號 N,NNN.NN?
3.小數(shù)點(diǎn)是逗號,分隔符是空格 N NNN,NN
系統(tǒng)以哪種方式顯示,存儲(chǔ)在用戶表USR01的DCPFM字段,值分別是"空"?、“X”、“Y”。
調(diào)用函數(shù)的時(shí)候?qū)⑦@個(gè)字段將作為其中的一個(gè)輸入?yún)?shù).函數(shù)會(huì)根據(jù)當(dāng)前顯示轉(zhuǎn)換.
例如:
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??????"此時(shí)為X
*?????MLLN???????????????=?'M'
*?????TSND???????????????=?'T'
??IMPORTING
????units??????????????=?l_clabs
??EXCEPTIONS
????invalid_type???????=?1
????OTHERS?????????????=?2.
總結(jié)
以上是生活随笔為你收集整理的ABAP中将字符格式的金额转换为数值的函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: abap 选择屏幕事件AT SELECT
- 下一篇: ABAP日期函数应用