Format valeur flottante avec 2 décimales [dupliquer]

Cette question a déjà une réponse ici:

Boooaaaaar !!! Espérons que tout le monde peut-il m'aider? Comment puis-je arrondir le résultat à 2 décimales et l'afficher sur l'étiquette du résultat? J'ai trouvé quelques déclarations, mais je suis nouveau pour Swift et il est en fait difficile pour moi de reconstruire les échantillons pour mon projet.

import UIKit

class ViewController: UIViewController {

    @IBOutlet var txt: UITextField!

    @IBOutlet var l5: UILabel!
    @IBOutlet var l10: UILabel!
    @IBOutlet var l15: UILabel!
    @IBOutlet var l20: UILabel!
    @IBOutlet var l25: UILabel!
    @IBOutlet var l30: UILabel!
    @IBOutlet var l35: UILabel!
    @IBOutlet var l40: UILabel!

    @IBAction func Berechnen(sender: AnyObject) {

        var Zahl = (txt.text as NSString).floatValue

        l5.text  = "((Zahl / 95) * (100))"
        l10.text = "((Zahl / 90) * (100))"
        l15.text = "((Zahl / 85) * (100))"
        l20.text = "((Zahl / 80) * (100))"
        l25.text = "((Zahl / 75) * (100))"
        l30.text = "((Zahl / 70) * (100))"
        l35.text = "((Zahl / 65) * (100))"
        l40.text = "((Zahl / 60) * (100))"
    }

    func textFieldShouldReturn(textField: UITextField) -> Bool {
        self.view.endEditing(true)
        return false
    }

}
40
demandé sur Steve Wilford 2015-08-07 13:52:02

1 réponses

Vous pouvez utiliser les spécificateurs de formatage de chaîne standard pour arrondir à un nombre arbitraire de décimales. Spécifiquement %.nfn est le nombre de décimales dont vous avez besoin:

let twoDecimalPlaces = String(format: "%.2f", 10.426123)

En supposant que vous voulez afficher le numéro sur chacune des étiquettes l*:

@IBAction func Berechnen(sender: AnyObject) {

    var Zahl = (txt.text as NSString).floatValue

    l5.text  = String(format: "%.2f", (Zahl / 95) * 100)
    l10.text = String(format: "%.2f", (Zahl / 90) * 100)
    l15.text = String(format: "%.2f", (Zahl / 85) * 100)
    l20.text = String(format: "%.2f", (Zahl / 80) * 100)
    l25.text = String(format: "%.2f", (Zahl / 75) * 100)
    l30.text = String(format: "%.2f", (Zahl / 70) * 100)
    l35.text = String(format: "%.2f", (Zahl / 65) * 100)
    l40.text = String(format: "%.2f", (Zahl / 60) * 100)
}
88
répondu Steve Wilford 2015-08-08 08:15:37