чи є спосіб отримати абсолютне значення з цілого числа?
наприклад
-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