есть ли способ получить абсолютное значение из целого числа?
например
-8
to
8
Я уже пытался использовать UInt(), предполагая, что он преобразует значение Int в unsigned, но это не сработало.
есть ли способ получить абсолютное значение из целого числа?
например
-8
to
8
Я уже пытался использовать UInt(), предполагая, что он преобразует значение Int в unsigned, но это не сработало.
Стандартная функция abs()
прекрасно работает здесь:
let c = -8
print(abs(c))
// 8
В соответствии с вашими потребностями, в Swift 5 вы можете использовать один из двух следующих способов для решения вашей проблемы (работает также для других числовых переменных, таких как CGFloat, Double и т.д.):
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
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
Если вы хотите изменить число или оставить его положительным.
Вот путь:
abs() for int
fabs() for double
fabsf() for float
Если вы хотите получить абсолютное значение от double или Int, используйте fabs
func:
var c = -12.09
print(fabs(c)) // 12.09
c = -6
print(fabs(c)) // 6