Swift -转换为绝对值



是否有办法从整数中获得绝对值?
例如

-8  
to  
 8

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

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

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

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


# 1。从magnitude属性

得到Int的绝对值

Int具有magnitude属性。magnitude有以下声明:

var magnitude: UInt { get }

对于任意数值x, x.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

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

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

最新更新