Круглый Двойной до ближайшей 10

Я хотел бы округлить до ближайшего 10.

Например, если число равно 8,0, то округляется до 10. Если число равно 2,0, округлите до 0.

Я не знаю, с чего начать. Что ты предлагаешь?

Вы можете использовать функцию round() (которая округляет число с плавающей запятой до ближайшего целочисленного значения) и применяет «масштабный коэффициент» 10:

 func roundToTens(x : Double) -> Int { return 10 * Int(round(x / 10.0)) } 

Пример использования:

 print(roundToTens(4.9)) // 0 print(roundToTens(15.1)) // 20 

Во втором примере 15.1 делится на десять ( 1.51 ), округленное ( 2.0 ), преобразованное в целое число ( 2 ) и снова умноженное на 10 ( 20 ).

Swift 3:

 func roundToTens(_ x : Double) -> Int { return 10 * Int((x / 10.0).rounded()) } 

В качестве альтернативы:

 func roundToTens(_ x : Double) -> Int { return 10 * lrint(x / 10.0) } 

определяя функцию округления как

 import Foundation func round(_ value: Double, toNearest: Double) -> Double { return round(value / toNearest) * toNearest } 

дает вам более общий и гибкий способ, как это сделать

 let r0 = round(1.27, toNearest: 0.25) // 1.25 let r1 = round(325, toNearest: 10) // 330.0 let r3 = round(.pi, toNearest: 0.0001) // 3.1416 

В Swift 3.0 это

 10 * Int(round(Double(ratio / 10))) 

Хорошее расширение для BinaryFloatingPoint в быстром:

 extension BinaryFloatingPoint{ func roundToTens() -> Int{ return 10 * Int(Darwin.round(self / 10.0)) } func roundToHundreds() -> Int{ return 100 * Int(Darwin.round(self / 100.0)) } } 

Вы также можете расширить протокол FloatingPoint , а также добавить опцию для выбора правила округления:

 extension FloatingPoint { func rounded(to value: Self, roundingRule: FloatingPointRoundingRule = .toNearestOrAwayFromZero) -> Self { return (self / value).rounded(roundingRule) * value } } 

 let value = 325.0 value.rounded(to: 10) // 330 (default rounding mode toNearestOrAwayFromZero) value.rounded(to: 10, roundingRule: .down) // 320 
  • Усечение Два десятичных знака без округления
  • Должен ли я использовать NSDecimalNumber для работы с деньгами?
  • Встроенный алгоритм .Net для округления значения до ближайшего 10 интервалов
  • Число округлений в R до указанного количества цифр
  • Круглая цифра в два раза
  • Как округлить время в T-SQL
  • Interesting Posts

    Что такое минимальное и максимальное состояние процессора в Windows 7 Power Management?

    Загружает и сохраняет только инструкции, которые переупорядочиваются?

    Не удалось получить макросы в блокноте ++ более новая версия

    Удалите кнопки «Комментарий» и «Поделиться» на панели инструментов Adobe Reader X

    Изменить путь для OS X

    Должен ли я использовать одну или несколько настроек базы данных для многоклиентского приложения?

    Разница между неопределенным поведением и неправильной формой, не требуется диагностическое сообщение

    Есть ли горячая клавиша Windows или ярлык для переключения на определенный экран?

    Как я могу автоматически отправлять зашифрованную почту gpg из командной строки linux?

    Как имитировать поведение автоматической пересылки стека

    Rails 3.1 Активы – странное обслуживание в разработке

    Что означает селектор CSS ~ (tilde / squiggle / twiddle)?

    Кто-нибудь рядом со мной просто НЕ получает ASP.NET MVC?

    Где найти исходный код Windows Modern UI?

    Возвращаемое значение ajax jquery async

    Давайте будем гением компьютера.