Niko Adrianus Yuwono
Niko Adrianus Yuwono

Reputation: 11112

Swift - Convert to absolute value

is there any way to get absolute value from an integer?
for example

-8  
to  
 8

I already tried to use UInt() assuming it will convert the Int to unsigned value but it didn't work.

Upvotes: 214

Views: 113060

Answers (4)

Imanou Petit
Imanou Petit

Reputation: 92409

With Swift 5, you may use one of the two following ways in order to convert an integer to its absolute value.


#1. Get absolute value of an Int from magnitude property

Int has a magnitude property. magnitude has the following declaration:

var magnitude: UInt { get }

For any numeric value x, x.magnitude is the absolute value of x.

The following code snippet shows how to use magnitude property in order to get the absolute value on an Int instance:

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

#2. Get absolute value of an Int from abs(_:) method

Swift has a global numeric function called abs(_:) method. abs(_:) has the following declaration:

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

Returns the absolute value of the given number.

The following code snippet shows how to use abs(_:) global function in order to get the absolute value on an Int instance:

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

Upvotes: 58

B.S.
B.S.

Reputation: 21726

The standard abs() function works great here:

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

Upvotes: 450

Sourabh Kumbhar
Sourabh Kumbhar

Reputation: 1054

If you want to force a number to change or keep it positive.
Here is the way:

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

Upvotes: 21

Hamed
Hamed

Reputation: 1838

If you want to get absolute value from a double or Int, use fabs func:

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

Upvotes: 3

Related Questions