user3316299
user3316299

Reputation: 11

Swift: How to limit decimal points in floats?

The question I have is how do I get my "calculated" and "calculatedTotal" variables to display their results to only two decimal places?

@IBOutlet weak var calculateLabel: UILabel!

@IBOutlet weak var calculateTotalLabel: UILabel!

@IBAction func calculateButton(sender: UIButton) {



    var calculated = correctNumber / (correctNumber + incorrectNumber) * 100
    calculateLabel.text = ("\(calculated)% without cues.")



    var calculatedTotal = correctNumber / (correctNumber + incorrectNumber + verbalNumber + visualNumber + tactileNumber) * 100
           calculateTotalLabel.text = "\(calculatedTotal)% without cues."


}

Upvotes: 0

Views: 1151

Answers (2)

Rob
Rob

Reputation: 437632

When formatting a number for the end user, I would recommend using NSNumberFormatter, which honors the user's current NSLocale. For example, to format these numbers to two decimal places, you might do something like:

@IBAction func calculateButton(sender: UIButton) {
    let formatter = NSNumberFormatter()
    formatter.minimumFractionDigits = 2
    formatter.maximumFractionDigits = 2

    let calculated = correctNumber / (correctNumber + incorrectNumber) * 100.0
    calculateLabel.text = ("\(formatter.stringFromNumber(calculated)!)% without cues.")

    let calculatedTotal = correctNumber / (correctNumber + incorrectNumber + verbalNumber + visualNumber + tactileNumber) * 100.0
    calculateTotalLabel.text = "\(formatter.stringFromNumber(calculatedTotal)!)% without cues."
}

Upvotes: 2

clearlight
clearlight

Reputation: 12615

You can use C-like format specifier in Swift as follows:

println(String(format: "%.2f", myFloat))

Or

calculatedTotal.text = String(format: "%.2f", myFloat)

Upvotes: 3

Related Questions