Swift Xcode将字符串转换为十进制数

4

我希望能将文本(例如“3.9”)转换为可以用于数学公式的十进制数。

这是我的代码的一部分,它允许我转换整数,但我也想转换小数:

import UIKit

var xa = 0

class ViewController: UIViewController {

    @IBOutlet weak var xA: UITextField!

    @IBAction func chargecarte(sender: AnyObject) {

        xa = xA.text.toInt()!

    }
}

在早期阶段:http://area51.stackexchange.com/proposals/63820/programmation-stack-overflow-in-french - jtbandes
3个回答

6

使用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
}

4

我非常不擅长说法语...

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)

-2

Swift解决方案:

  let decimalValue = Decimal(string: xA.text ?? "0")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接