Reputation: 11
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
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
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