4

I would like to convert text (such as "3.9") to a decimal number that can be used in mathematical formulas.

Here is the part of my code which allows me to convert integers, but I'd like to convert decimal numbers as well:

import UIKit

var xa = 0

class ViewController: UIViewController {

    @IBOutlet weak var xA: UITextField!

    @IBAction func chargecarte(sender: AnyObject) {

        xa = xA.text.toInt()!

    }
}
1

3 Answers 3

6

Using NumberFormatter is a good solution, here is an example on how to convert in Swift 3.0. Note that in Swift 3 NSNumberFormatter has been renamed NumberFormatter.

let formatter = NumberFormatter()
formatter.generatesDecimalNumbers = true
formatter.numberStyle = NumberFormatter.Style.decimal
if let formattedNumber = formatter.number(from: textValue) as? NSDecimalNumber  {
    xa = formattedNumber
}
Sign up to request clarification or add additional context in comments.

Comments

4

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)

Comments

-2

Swift solution:

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

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.