Есть ли способ получить абсолютное значение из целого числа?
например
-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
fromabs(_:)
Swift имеет глобальную числовую функцию с именем abs(_:)
method. 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