Paw*_*wes 1 nsnumberformatter swift
我用
func formatAmount(number:NSNumber) -> String {
let formatter = NSNumberFormatter()
formatter.numberStyle = .CurrencyStyle
return formatter.stringFromNumber(number)!
}
Run Code Online (Sandbox Code Playgroud)
将数字更改为货币格式化字符串,但我需要删除格式并获取只是数字,我需要删除逗号和货币符号.有什么具体的方法吗?请告诉我.
我试过了
func removeFormatAmount(string:String) -> NSNumber {
let formatter = NSNumberFormatter()
formatter.numberStyle = .NoStyle
formatter.currencySymbol = .None
formatter.currencyGroupingSeparator = .None
return formatter.numberFromString(string)!
}
Run Code Online (Sandbox Code Playgroud)
这给了我零价值.
更新 我发现,如果文本不包含$ sign,那么使用货币格式化将给出nil值,所以我所做的就是
if string.containsString("$") {
formatter.numberStyle = .CurrencyStyle
}
return formatter.numberFromString(string)?.floatValue
Run Code Online (Sandbox Code Playgroud)
现在它给了我很好的结果.
您可以创建一个字符串扩展来执行此操作
对于Swift 3:
extension String {
func removeFormatAmount() -> Double {
let formatter = NumberFormatter()
formatter.locale = Locale(identifier: "en_US")
formatter.numberStyle = .currency
formatter.currencySymbol = "$"
formatter.decimalSeparator = ","
return formatter.number(from: self) as Double? ?? 0
}
}
Run Code Online (Sandbox Code Playgroud)
使用:
let currencyString = "$1,000.00"
let amount = currencyString.removeFormatAmount() // 1000.0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6697 次 |
| 最近记录: |