Swift - 转换为绝对值

时间:2014-06-11 09:43:33

标签: ios iphone swift

有没有办法从整数中得到绝对值?
例如

-8  
to  
 8

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

4 个答案:

答案 0 :(得分:375)

标准abs()功能在这里很有用:

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

答案 1 :(得分:28)

根据您的需要,使用Swift 4,您可以使用以下两种方法之一来解决您的问题(也适用于其他数值变量,如CGFloat,Double等):

#1。从Int属性

获取magnitude的绝对值

使用Swift 4,Int具有magnitude属性。 magnitude有以下声明:

var magnitude: UInt { get }
  

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

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

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

#2。从Int方法

获取abs(_:)的绝对值

Swift 4有一个名为abs(_:)方法的全局数字函数。 abs(_:)有以下声明:

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

返回给定数字的绝对值。

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

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

答案 2 :(得分:3)

如果您想强制更改或保持正数。
方法如下:

UIViewControllers

答案 3 :(得分:0)

如果要从double或Int获得绝对值,请使用fabs func:

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