格式货币迅速
#字符串 #ios #swift #currency

最近,我在Swift Project中的格式化货币上做了很多工作,这里有一些关于如何在Swift中格式化编号的技巧:

带有汽车货币符号的格式货币

通过使用NumberFormatter类,我们可以将数字转换为字符串,反之亦然。更方便的是,我们还可以配置一个NumberFormatter对象,以自动具有特定货币符号的特定场所显示货币值。例如,•在欧洲国家,澳大利亚和儿子的$。

let value = 100.0
let currencyFormatter = NumberFormatter()
currencyFormatter.numberStyle = .currency
currencyFormatter.locale = Locale(identifier: "en_US")

let formattedValue = currencyFormatter.string(from: value as NSNumber)
print(formattedValue) // "$100.00"

格式货币,最大2小数

此外,我们还可以以特定格式格式化货币值,例如将100.78转换为$ 100.78:

let formatter = NumberFormatter()
formatter.numberStyle = .currency
formatter.minimumFractionDigits = 0
formatter.maximumFractionDigits = 2

let amount1 = 100.78
let formattedAmount1 = formatter.string(from: NSNumber(value: amount1))!

print(formattedAmount1) // Output: "$100.78"

// input is whole amount
let amount2 = 100
let formattedAmount2 = formatter.string(from: NSNumber(value: amount2))!

print(formattedAmount2) // Output: "$100"

// input is whole amount
let amount3 = 100.1
let formattedAmount3 = formatter.string(from: NSNumber(value: amount3))!

print(formattedAmount3) // Output: "$100.1"

minimumFractionDigits表示原始值是全量或仅1个小数零件,它将仅显示0或1个小数,请参见上述示例amount2amount3

格式货币总是2个小数

考虑到上述示例,我们还可以设置格式化器,该格式始终显示2个小数(或您想要的任何数量小数)的货币值:

let formatter = NumberFormatter()
formatter.numberStyle = .currency
formatter.minimumFractionDigits = 2
formatter.maximumFractionDigits = 2

let amount = 123456.789
let formattedAmount = formatter.string(from: NSNumber(value: amount))!

print(formattedAmount) // Output: "$123,456.79"

有关更多详细信息:https://needone.app/format-currency-in-swift/