2016-10-13 2 views
0

Je me demandais comment arrondir une valeur UISilder à une valeur int. En ce moment, il affiche des flotteurs. J'utilise swift 3 pour le moment.Comment arrondir un UISlider à un int dans swift

 @IBOutlet var slidermove: UISlider! 

    @IBAction func SliderVal(_ sender: AnyObject) { 

     print(slidermove) 
     let x = round(slidermove) 
    } 

round() ne fonctionne pas donnera une erreur, merci pour tous ceux qui aide

Répondre

3

Vous devez arrondir sa valeur au lieu de UISlider lui-même .:

let x = roundf(slider.value) // x is Float 

Si vous avez besoin d'un Int au lieu de Float, juste envelopper avec Int initialiseur:

let x = Int(round(slider.value)) // x is Int 
+0

Merci pour votre aide alex cela a fonctionné !. Mais comment pourrais-je me débarrasser de ce dernier point décimal. par exemple 10,0 à 10 – Puneet

+0

@Puneet De rien. Jetez un oeil à la réponse mise à jour. – alexburtnik

1

Pour arrondir un Float à l'entier le plus proche et obtenir le résultat sous la forme et Int, la fonction (peut-être moins connue) lrintf() peut être utilisée. Exemple:

let x = Float(12.6) 
let i = lrintf(x) 
print(i) // 13 

Dans votre cas:

let i = lrintf(slider.value) // `i` is an `Int` 
+0

Merci Martin R – Puneet

+0

@Puneet: Il y avait une erreur car la valeur du curseur est Float, pas un double. C'est corrigé maintenant. –