【问题标题】:swift xcode string to decimal numberswift xcode字符串到十进制数
【发布时间】:2014-11-18 19:00:51
【问题描述】:
我想将文本(例如“3.9”)转换为可用于数学公式的十进制数。
这是我的代码的一部分,它允许我转换整数,但我也想转换十进制数:
import UIKit
var xa = 0
class ViewController: UIViewController {
@IBOutlet weak var xA: UITextField!
@IBAction func chargecarte(sender: AnyObject) {
xa = xA.text.toInt()!
}
}
【问题讨论】:
标签:
string
swift
numbers
int
decimal
【解决方案1】:
使用 NumberFormatter 是一个很好的解决方案,这里有一个如何在 Swift 3.0 中转换的示例。请注意,在 Swift 3 中,NSNumberFormatter 已重命名为 NumberFormatter。
let formatter = NumberFormatter()
formatter.generatesDecimalNumbers = true
formatter.numberStyle = NumberFormatter.Style.decimal
if let formattedNumber = formatter.number(from: textValue) as? NSDecimalNumber {
xa = formattedNumber
}
【解决方案2】:
je parlais Français très mal...
let str : NSString = xA.text
var xa : Float = str.floatValue
var xa1 : Double = str.doubleValue
// or
let formatter = NSNumberFormatter()
formatter.numberStyle = NSNumberFormatter.DecimalStyle
var xa2 : NSNumber? = formatter.numberFromString(str)
【解决方案3】:
快速解决方案:
let decimalValue = Decimal(string: xA.text ?? "0")