有没有办法从一个整数得到绝对值?< br > 例如
-8 to 8
我已经尝试使用UInt(),假设它将Int转换为unsigned值,但它没有工作。
标准的abs()函数在这里工作得很好:
abs()
let c = -8 print(abs(c)) // 8
在Swift 5中,你可以使用以下两种方法中的一种来将整数转换为绝对值。
magnitude
Int
Int有一个magnitude属性。magnitude有以下声明:
var magnitude: UInt { get }
对于任何数值x, x.magnitude是x的绝对值。
x
x.magnitude
下面的代码片段展示了如何使用magnitude属性来获取Int实例的绝对值:
let value = -5 print(value.magnitude) // prints: 5
abs(_:)
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:
fabs
var c = -12.09 print(fabs(c)) // 12.09 c = -6 print(fabs(c)) // 6
如果你想强迫一个数字改变或保持它为正 方法如下:
abs() for int fabs() for double fabsf() for float