我用
func formatAmount(number:NSNumber) -> String {
let formatter = NSNumberFormatter()
formatter.numberStyle = .CurrencyStyle
return formatter.stringFromNumber(number)!
}
将数字更改为货币格式化字符串,但我需要删除格式并获取只是数字,我需要删除逗号和货币符号。有什么具体的方法吗?请告诉我。
我试过
func removeFormatAmount(string:String) -> NSNumber {
let formatter = NSNumberFormatter()
formatter.numberStyle = .NoStyle
formatter.currencySymbol = .None
formatter.currencyGroupingSeparator = .None
return formatter.numberFromString(string)!
}
这给了我零值。
更新 我发现如果文本不包含$ sign,那么使用货币格式化将给出nil值,所以我做的是
if string.containsString("$") {
formatter.numberStyle = .CurrencyStyle
}
return formatter.numberFromString(string)?.floatValue
现在它给了我很好的结果。
答案 0 :(得分:6)
您可以创建字符串扩展名来执行该操作
对于Swift 3:
function isPalindrome(str) {
str = str.toLowerCase().replace(/\W+|_/g, '');
return str == str.split('').reverse().join('');
}
使用:
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
}
}
答案 1 :(得分:2)
func formatAmount(number:NSNumber) -> String{
let formatter = NSNumberFormatter()
formatter.numberStyle = .CurrencyStyle
formatter.currencySymbol = "" // <--------
formatter.currencyGroupingSeparator = "" // <--------
return formatter.stringFromNumber(number)!
}
答案 2 :(得分:0)
NSNumberFormatter
有一个可以使用的函数numberFromString
let formatter = NSNumberFormatter()
formatter.numberStyle = .CurrencyStyle
if let number = formatter.numberFromString(string) {
//Use number
}
如果你想要从数字开始的字符串,那么之后很容易就可以从那个数字构建一个字符串
var number = formatter.numberFromString(string)!
var string = "\(number)"
答案 3 :(得分:0)
func removeFormatAmount(string:String) -> NSNumber{
let formatter = NSNumberFormatter()
// specify a locale where the decimalSeparator is a comma
formatter.locale = NSLocale(localeIdentifier: "pt_BR")
formatter.numberStyle = .CurrencyStyle
formatter.currencySymbol = "$"
formatter.decimalSeparator = ","
return formatter.numberFromString(string) ?? 0
}
removeFormatAmount("$15,99") // 15.99
答案 4 :(得分:0)
快速4 +
这将从所有语言中删除货币格式
[Serializable]
public class Question
{
public string text;
public string correct;
public string answer1;
public string answer2;
public string answer3;
}
[Serializable]
public class RootObject
{
public List<Question> question;
}
示例:
extension String {
public func removeFormatAmount() -> Double {
let formatter = NumberFormatter()
formatter.locale = Locale.current
formatter.numberStyle = .currency
formatter.currencySymbol = Locale.current.currencySymbol
formatter.decimalSeparator = Locale.current.groupingSeparator
return formatter.number(from: self)?.doubleValue ?? 0.00
}
}