我想显示一个字符串,如:
99%
根据Percent sign Wikipedia article,根据用户的语言,至少有13种不同的变体。
如何根据用户的区域设置在Swift中显示带有{{1}}符号的数字?
答案 0 :(得分:3)
您可以使用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