[英]Currency formatting in iOS
我想在iOS應用中正確格式化多種貨幣。
當前,我們的后端以最小的貨幣單位將貨幣值顯示為正整數(例如,以100美分的價格收取1.00美元的費用,或以100美分的價格收取100日元的費用,一種零進制的貨幣)。 這與我們與付款處理器進行互動時實際產生費用的方式是一致的。
我的問題是,給定貨幣代碼和這個“最小的可能單位”,是否可以使用Foundation的NumberFormatter
正確格式化貨幣?
基於存儲值的奇怪方法,似乎需要知道是否需要對值進行除法和除以多少。
根據您提供的兩個示例,可以通過查看貨幣的格式化程序設置並獲取maximumFractionDigits
的值來完成此操作。 用那個來計算10的冪,需要除以您的數字。 然后格式化結果編號。
例:
let amount = 100 // your raw value
let cf = NumberFormatter()
cf.currencyCode = "USD" // set based on your value
cf.numberStyle = .currency
let factor = pow(10.0, Double(cf.maximumFractionDigits))
let value = Double(amount) / factor
let string = cf.string(for: value)
結果是:
$ 1.00
如果使用currencyCode
為JPY
來運行相同的代碼,則結果為:
¥100
當然,確切的輸出將取決於用戶的語言環境。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.