本地化百分比值

时间:2018-03-22 22:02:59

标签: ios swift

我想显示一个字符串,如:

  

99%

根据Percent sign Wikipedia article,根据用户的语言,至少有13种不同的变体。

如何根据用户的区域设置在Swift中显示带有{{1}}符号的数字?

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