web-dev-qa-db-fra.com

Mettre en forme la valeur flottante avec 2 décimales

Boooaaaaar !!! J'espère que tout le monde peut 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 sur Swift et il m'est difficile 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
    }

}
42
Andreas

Vous pouvez utiliser la norme spécificateurs de format de chaîne pour arrondir à un nombre arbitraire de décimales. Plus précisément %.nfn est le nombre de décimales dont vous avez besoin:

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

En supposant que vous souhaitiez afficher le numéro sur chacun des l* Étiquettes:

@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)
}
96
Steve Wilford