Reputation: 11112
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
Reputation: 92409
With Swift 5, you may use one of the two following ways in order to convert an integer to its absolute value.
Int
from magnitude
propertyInt
has a magnitude
property. magnitude
has the following declaration:
var magnitude: UInt { get }
For any numeric value
x
,x.magnitude
is the absolute value ofx
.
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
Int
from abs(_:)
methodSwift 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
Reputation: 21726
The standard abs()
function works great here:
let c = -8
print(abs(c))
// 8
Upvotes: 450
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
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