есть ли способ получить абсолютное значение из целого числа?
например
-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