在sap系統內,不同的貨幣的小數的位數有可能不一樣的,比如:日幣和人民幣的就不同。
**:123
45reportztest_currency_convert.
data:l_netwrtypepdecimals2.
l_netwr='1.8'.
write:/'jpy:',l_netwrcurrency'jpy'.
write:/'rmb:',l_netwrcurrency'rmb'.
執行結果:
同樣輸入了1.8,但是輸出的結果卻不同,日幣擴大了100倍,變成了180日元,而rmb還保持原樣,1.8元,想想很合理,日元最小單位是元,而rmb最小是分。
換句話,系統自動給日元加了個轉換因子100,rmb的轉換因子是1.
這個轉換因子學名叫貨幣轉換因子(currency converting factor),是在abap開發中的乙個重要的概念。計算公式如下:
貨幣轉換因子 = 100 × 貨幣的最小單位(小數點後位數,例如,小數點3位,最小單位就是0.001).
當沒有小數點時,貨幣轉換因子就是100 × 1 = 100.
貨幣的小數字數是儲存在表tcurx中的,正常的貨幣都是小數點後2位的,這個是預設的,不儲存在這個表中,也就是凡是在表tcurx中找不到的貨幣的轉換因子都是100 × 0.01 = 1,比如rmb。
在上圖中能看到日元的是沒有小數點,是0,所以日元的轉換因子 = 100 × 1 = 100.
sap提供了乙個函式currency_converting_factor能直接得到貨幣的轉換因子,
上面這個貨幣的轉換過程是sap自動實現的,比如180日元在資料庫中會自動儲存成1.8,但是有個前提就是一定要指定幣種。
資料庫中顯示:
而在螢幕上,讀出來的就是自動轉換後的正確金額。
我們在abap程式設計時要注意指定幣種:
1) write輸出時,指定currency
1write:g_netwrcurrencyvbap-waerk.
2) screen中指定參考單位
3) alv 中也要在catelog中指定參考貨幣單位,
oo alv中
tcurt:貨幣描述文字
tcurc:貨幣**(currency codes)
以上。
墾丁小吃 一碗150元台幣的芒果冰
新鮮的芒果冰,是冰館的招牌冰品 還沒走近冰館,或許你會被大排長龍的隊伍吸引靠近 但一碗芒果冰要價一百五十元台幣,究竟冰館的魅力何在?十二年前,冰館只是一家五坪大的店鋪,在永康街上賣的是一般的傳統冰品,紅豆冰 綠豆冰。前三年開店,生意不好,於是羅老闆就將自己喜愛吃的芒果大量鋪在冰上,淋上糖水 煉奶,上...
富士康第三季度淨利潤為308億元新台幣 超市場預期
程式設計客棧 www.cppcns.com 11月12日 訊息 今天,全球最大的電子產品代工廠富士康發布三季度財報,季度利潤與去年同期接近持平,超過市場預期,原因是受疫情促使遠端辦公裝置需求強勁。財tvynwfkt報顯示,該公司7月至9月的淨利潤為308億元新台幣 約合10.8億美元 與去年同期30...