Eric Zhou Eric Zhou - 28 days ago 7
Swift Question

How to convert double to int in swift

So I'm trying to figure out how I can get my program to lose the .0 after an integer when I don't need the any decimal places.

@IBOutlet weak var numberOfPeopleTextField: UITextField!
@IBOutlet weak var amountOfTurkeyLabel: UILabel!
@IBOutlet weak var cookTimeLabel: UILabel!
@IBOutlet weak var thawTimeLabel: UILabel!


var turkeyPerPerson = 1.5
var hours: Int = 0
var minutes = 0.0

func multiply (#a: Double, b: Double) -> Double {
return a * b
}

func divide (a: Double , b: Double) -> Double {
return a / b
}

@IBAction func calculateButton(sender: AnyObject) {
var numberOfPeople = numberOfPeopleTextField.text.toInt()
var amountOfTurkey = multiply(a: 1.5, b: Double(numberOfPeople!))
var x: Double = amountOfTurkey
var b: String = String(format:"%.1f", x)
amountOfTurkeyLabel.text = "Amount of Turkey: " + b + "lbs"

var time = multiply(a: 15, b: amountOfTurkey)
var x2: Double = time
var b2: String = String(format:"%.1f", x2)
if (time >= 60) {
time = time - 60
hours = hours + 1
minutes = time
var hours2: String = String(hours)
var minutes2: String = String(format: "%.1f", minutes)

cookTimeLabel.text = "Cook Time: " + hours2 + " hours and " + minutes2 + " minutes"
}else {
cookTimeLabel.text = "Cook Time: " + b2 + "minutes"
}

}


}

Do I need to make an if statement to somehow turn Double into Int for this to work?

Answer

You can use:

Int(yourDoubleValue)

this will convert double to int.

or when you use String format use 0 instead of 1:

String(format: "%.0f", yourDoubleValue)

this will just display your Double value with no decimal places, without converted it to int.