簡體   English   中英

iOS中的貨幣格式

[英]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

如果使用currencyCodeJPY來運行相同的代碼,則結果為:

¥100

當然,確切的輸出將取決於用戶的語言環境。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM