【发布时间】:2018-06-28 13:44:15
【问题描述】:
我一直在尝试基于传递我的自定义语言标识符来实现货币格式。
下面是我的代码
func currencyFormatter(language:String, amount:String) -> String {
let nsFormatter = NumberFormatter()
nsFormatter.numberStyle = .currency
nsFormatter.currencySymbol = ""
var formattedString: String?
var amountInNumber:NSNumber!
if let number = nsFormatter.number(from: amount)
{
amountInNumber = number.doubleValue as NSNumber
}
nsFormatter.locale = Locale(identifier: language)
formattedString = ((amountInNumber?.intValue) != nil) ? nsFormatter.string(from: amountInNumber) : amount
guard let finalString = formattedString else {
return ""
}
return finalString
}
我正在尝试将语言传递为“fr-FR”并将数量传递为“1234.45”,然后期望输出为“1 234,45”。
这在模拟器中工作正常,但在设备中不工作(返回相同的值 1234.45)
我错过了什么吗?请帮忙!
提前致谢
【问题讨论】:
标签: swift nsnumber nsnumberformatter nslocale xcode9.2