【发布时间】:2014-07-28 20:28:24
【问题描述】:
我有一个变量来存储我需要在计算中使用的货币值,但是我不知道如何在计算中使用它,因为变量的开头有一个货币符号(例如 £ 2.43,70.82 美元,300.21 欧元)。我曾考虑用任何内容替换第一个字符,但这不起作用,因为有些货币使用多个字符,有些货币在值后面有符号。
有谁知道我如何删除除值本身之外的所有字符?或者另一种将变量纳入计算的方法? (顺便说一句,我使用的是 Swift)
编辑:
我一直在尝试 NSDecimalNumber 来转换字符串,但是我收到错误消息“NSNumber 无法转换为 NSDecimalNumber”。这是我的代码:
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
resetButtonNav.enabled = false
self.navigationController.navigationBar.barTintColor = UIColor.newBlueColor()
self.tabBarController.tabBar.selectedImageTintColor = UIColor.newBlueColor()
UINavigationBar.appearance().barTintColor = UIColor.newBlueColor()
UINavigationBar.appearance().tintColor = UIColor.whiteColor()
textField.addTarget(self, action: "textFieldDidChange:", forControlEvents: UIControlEvents.EditingChanged)
self.view.addSubview(textField)
currencyFormatter.numberStyle = NSNumberFormatterStyle.CurrencyStyle
currencyFormatter.currencyCode = NSLocale.currentLocale().displayNameForKey(NSLocaleCurrencySymbol, value: NSLocaleCurrencyCode)
}
func textFieldDidChange(textField: UITextField) {
var text = textField.text.stringByReplacingOccurrencesOfString(currencyFormatter.currencySymbol, withString: "").stringByReplacingOccurrencesOfString(currencyFormatter.groupingSeparator, withString: "").stringByReplacingOccurrencesOfString(currencyFormatter.decimalSeparator, withString: "")
textField.text = currencyFormatter.stringFromNumber((text as NSString).doubleValue / 100.0)
}
@IBAction func enterBudgetButton(sender : AnyObject) {
finalUserBudget = textField.text
budgetName = budgetNameText.text
var currencyFormatterTest:NSNumberFormatter
currencyFormatterTest.formatterBehavior = NSNumberFormatterBehavior.Behavior10_4
currencyFormatterTest.generatesDecimalNumbers = true
currencyFormatterTest.numberStyle = NSNumberFormatterStyle.CurrencyStyle
var finalUserBudgetFormatted: NSDecimalNumber = currencyFormatter.numberFromString(finalUserBudget)
}
【问题讨论】:
-
你想用
NSNumberFormatter把字符串变成NS(Decimal)Number -
啊。我已经更新了我的问题。
标签: swift