Swift -转换为绝对值

有没有办法从一个整数得到绝对值?< br > 例如

-8
to
8

我已经尝试使用UInt(),假设它将Int转换为unsigned值,但它没有工作。

108206 次浏览

标准的abs()函数在这里工作得很好:

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

在Swift 5中,你可以使用以下两种方法中的一种来将整数转换为绝对值。


# 1。从magnitude属性中获取Int的绝对值

Int有一个magnitude属性。magnitude有以下声明:

var magnitude: UInt { get }

对于任何数值xx.magnitudex的绝对值。

下面的代码片段展示了如何使用magnitude属性来获取Int实例的绝对值:

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

# 2。从abs(_:)方法获取Int的绝对值

Swift有一个全局数值函数叫做abs(_:)方法。abs(_:)有以下声明:

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

返回给定数字的绝对值。

下面的代码片段展示了如何使用abs(_:)全局函数来获得Int实例的绝对值:

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

如果你想从double或Int类型中获取绝对值,使用fabs func:

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

如果你想强迫一个数字改变或保持它为正 方法如下:

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