我想格式化文本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