Swift - конвертировать в абсолютное значение

есть ли способ получить абсолютное значение из целого числа?
например

-8  
to  
 8

Я уже пытался использовать UInt(), предполагая, что он преобразует значение Int в unsigned, но это не сработало.

Ответ 1

Стандартная функция abs() прекрасно работает здесь:

let c = -8
print(abs(c))
// 8

Ответ 2

В соответствии с вашими потребностями, в Swift 5 вы можете использовать один из двух следующих способов для решения вашей проблемы (работает также для других числовых переменных, таких как CGFloat, Double и т.д.):


# 1. Получить абсолютное значение Int из свойства magnitude

В Swift 4 Int обладает свойством magnitude. magnitude имеет следующую декларацию:

var magnitude: UInt { get }

Для любого числового значения x, x.magnitude является абсолютным значением x.

В следующем фрагменте кода показано, как использовать свойство magnitude для получения абсолютного значения в экземпляре Int:

let value = -5
print(value.magnitude) // prints: 5

# 2. Получить абсолютное значение Int из метода abs(_:)

Swift 4 имеет глобальную числовую функцию, которая называется abs(_:) method. abs(_:) имеет следующую декларацию:

func abs<T>(_ x: T) -> T where T : Comparable, T : SignedNumeric

Возвращает абсолютное значение заданного числа.

В следующем фрагменте кода показано, как использовать глобальную функцию abs(_:) для получения абсолютного значения в экземпляре Int:

let value = -5
print(abs(value)) // prints: 5

Ответ 3

Если вы хотите изменить число или оставить его положительным.
Вот путь:

abs() for int
fabs() for double
fabsf() for float

Ответ 4

Если вы хотите получить абсолютное значение от double или Int, используйте fabs func:

var c = -12.09
print(fabs(c)) // 12.09
c = -6
print(fabs(c)) // 6