有没有办法从整数中获取绝对值? 例如
-8
to
8
我已经尝试使用UInt(),假设它将Int转换为无符号值,但它不起作用。
标准的abs()
功能在这里很有用:
let c = -8
print(abs(c))
// 8
根据您的需要,使用Swift 4,您可以使用以下两种方法之一来解决您的问题(也适用于其他数值变量,如CGFloat,Double等):
Int
财产获得magnitude
的绝对值使用Swift 4,Int
拥有magnitude
财产。 magnitude
有以下声明:
var magnitude: UInt { get }
对于任何数值
x
,x.magnitude
是x
的绝对值。
以下代码片段显示了如何使用magnitude
属性来获取Int
实例的绝对值:
let value = -5
print(value.magnitude) // prints: 5
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
如果你想强迫一个数字改变或保持积极的。 这是方式:
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