【发布时间】:2018-09-01 12:18:38
【问题描述】:
我想显示一个字符串,例如:
99%
根据Percent sign Wikipedia article,根据用户的语言,至少有13种不同的变体。
如何在 Swift 中显示带有 % 符号的数字,根据用户的区域设置显示正确?
【问题讨论】:
我想显示一个字符串,例如:
99%
根据Percent sign Wikipedia article,根据用户的语言,至少有13种不同的变体。
如何在 Swift 中显示带有 % 符号的数字,根据用户的区域设置显示正确?
【问题讨论】:
您可以使用 NumberFormatter 来执行此操作。默认情况下,它会考虑用户当前的语言环境,您也可以使用Locale.current 来获取。如果你希望你也可以改变它,
func percentFormatted(number: Float, locale: Locale = Locale.current) -> String? {
let number = (num / 100) as NSNumber
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .percent
numberFormatter.maximumFractionDigits = 2
numberFormatter.minimumFractionDigits = 0
numberFormatter.locale = locale
return numberFormatter.string(from: number)
}
percentFormatted(number: 99.0) // 99% default locale en_US
percentFormatted(number: 99.0, locale: Locale(identifier: "fi_FI")) // 99 %
percentFormatted(number: 99.0, locale: Locale(identifier: "tr_TR")) // %99
【讨论】: