чи є спосіб отримати абсолютне значення з цілого числа?
наприклад
-8
to
8
Я вже намагався використовувати UInt (), припускаючи, що він перетворить Int у непідписане значення, але це не спрацювало.
чи є спосіб отримати абсолютне значення з цілого числа?
наприклад
-8
to
8
Я вже намагався використовувати UInt (), припускаючи, що він перетворить Int у непідписане значення, але це не спрацювало.
Відповіді:
Тут abs()
працює чудова стандартна функція:
let c = -8
print(abs(c))
// 8
За допомогою Swift 5 ви можете скористатися одним із двох наступних способів, щоб перетворити ціле число в його абсолютне значення.
Int
від magnitude
власностіInt
має magnitude
властивість. magnitude
має таку заяву:
var magnitude: UInt { get }
Для будь-якого числового значення
x
,x.magnitude
абсолютне значенняx
.
Наступний фрагмент коду показує, як використовувати magnitude
властивість для отримання абсолютного значення для Int
екземпляра:
let value = -5
print(value.magnitude) // prints: 5
Int
з abs(_:)
методуСвіфт має глобальну числову функцію, що називається abs(_:)
методом. abs(_:)
має таку заяву:
func abs<T>(_ x: T) -> T where T : Comparable, T : SignedNumeric
Повертає абсолютне значення заданого числа.
Наступний фрагмент коду показує, як використовувати abs(_:)
глобальну функцію для отримання абсолютного значення для Int
екземпляра:
let value = -5
print(abs(value)) // prints: 5
abs(Int8.min)
не може працювати, і тому створює помилку переповнення.
Якщо ви хочете змусити число змінити або зберегти його позитивним.
Ось такий спосіб:
abs() for int
fabs() for double
fabsf() for float