SAP UI5 货币金额显示的格式化逻辑
生活随笔
收集整理的這篇文章主要介紹了
SAP UI5 货币金额显示的格式化逻辑
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
先看一些實際的例子:
var oFormat = NumberFormat.getCurrencyInstance({ "currencyCode": false,"customCurrencies": { "BTC": { "symbol": "\u0243", "decimals": 3 } }});oFormat.format(123.4567, "BTC"); // "? 123.457"上面的例子,定義了一個名為 BTC 的自定義貨幣符號,同時用 decimals 指定小數點后的數位,以及貨幣符號的 unicode 編碼值。
運行結果如下:
另一個例子:
var oFormat = NumberFormat.getCurrencyInstance({"currencyCode": false,"customCurrencies": {"MyDollar": {"isoCode": "USD","decimals": 3},"Bitcoin": {"decimals": 2}}});// symbol looked up from global configuration oFormat.format(123.4567, "MyDollar"); // "$123.457"// no symbol available, custom currency key is rendered oFormat.format(777.888, "Bitcoin"); // "Bitcoin 777.89"我們來單步調試查看 format 函數的執行原理。
進入 Currency.js 的 formatValue 方法。輸入參數為 87.2 和 EUR:
目標類型為 string 字符串,所以進入 case string 的分支:
讀取 EUR 對應的 digit 數位:
所有的格式都存儲在 LocaleData 里:
找不到 EUR 對應的 digit 值:
于是讀取 default 配置。如果 default 配置也為空,就返回默認的 2.
default 值維護在此處:2
此處把 87 和 2 使用小數點分隔開,放到不同的變量里分別存儲:
iDotPos = sNumber.indexOf(".");if (iDotPos > -1) {sIntegerPart = sNumber.substr(0, iDotPos);sFractionPart = sNumber.substr(iDotPos + 1);} else {sIntegerPart = sNumber;}最終的格式化結果:87.20
看另一個例子:9.99999 EUR
這里 preserveDecimals 的值為 true,因此 9.99999 小數點后的五個 9,會被保留下來。
如果我們把 preserveDecimals 的值改為 false,
最后顯示的值就四舍五入變成了 10.00:
更多Jerry的原創文章,盡在:“汪子熙”:
總結
以上是生活随笔為你收集整理的SAP UI5 货币金额显示的格式化逻辑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 倩女幽魂经典台词
- 下一篇: SAP UI5 应用开发教程之二十九 -