Как округлить UISlider до int в swift

#ios #swift #uislider

#iOS #swift #uislider

Вопрос:

Мне было интересно, как округлить значение UISilder до значения int. Прямо сейчас он отображает значения с плавающей запятой. На данный момент я использую swift 3.

      @IBOutlet var slidermove: UISlider!

     @IBAction func SliderVal(_ sender: AnyObject) {

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

round() не работает, выдает ошибку, спасибо всем, кто помогает

Ответ №1:

Вы должны округлить его значение вместо самого UISlider.:

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

Если вам нужно Int вместо Float , просто оберните его Int initializer:

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

Комментарии:

1. Спасибо, Алекс, за вашу помощь, это сработало!. Но как мне избавиться от этой последней десятичной точки. например, от 10.0 до 10

2. @Puneet Добро пожаловать. Взгляните на обновленный ответ.

Ответ №2:

Чтобы округлить a Float до ближайшего целого числа и получить результат в виде an Int , можно использовать (возможно, не столь известную) функцию lrintf() . Пример:

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

В вашем случае:

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

Комментарии:

1. Спасибо, Мартин Р.

2. @Puneet: Произошла ошибка, потому что значение ползунка является плавающим, а не двойным. Теперь это исправлено.