Search code examples
swiftdouble

Round up double to 2 decimal places


How do I round up currentRatio to two decimal places?

let currentRatio = Double (rxCurrentTextField.text!)! / Double (txCurrentTextField.text!)!
railRatioLabelField.text! = "\(currentRatio)"

Solution

  • Use a format string to round up to two decimal places and convert the double to a String:

    let currentRatio = Double (rxCurrentTextField.text!)! / Double (txCurrentTextField.text!)!
    railRatioLabelField.text! = String(format: "%.2f", currentRatio)
    

    Example:

    let myDouble = 3.141
    let doubleStr = String(format: "%.2f", myDouble) // "3.14"
    

    If you want to round up your last decimal place, you could do something like this (thanks Phoen1xUK):

    let myDouble = 3.141
    let doubleStr = String(format: "%.2f", ceil(myDouble*100)/100) // "3.15"