我想格式化文本UILabel
使用NSNumberFormatter
選擇的語言環境NSNumberFormatterStyle.DecimalStyle
和建立區域設置格式化爲ar-SA
。NSNumberFormatter.numberFromString()返回nil爲AR-SA區域
當UILabel
文本具有被轉化爲E符號(科學計數法)爲示例 - 「1E9」大數「 2.3456e24」等numberFromString()
返回nil
爲ar-SA
區域。但是,它適用於其他語言環境。
@IBOutlet weak var displayText: UILabel!
let format = NSNumberFormatter()
format.numberStyle = NSNumberFormatterStyle.DecimalStyle
format.locale = NSLocale(localeIdentifier: language)// where language = "ar-SA" or "en-US" or "de-DE"
format.maximumFractionDigits = 16
var result = displayText.text! // result = "1e9" or "2.3456e24"
guard let number = format.numberFromString(result), let string = format.stringFromNumber(number) else {
displayText.text = "Error"
return
}
result = string
如何解決這個問題? ar-SA
區域設置和E符號是否有限制?
請創建[MCVE] – dan