有没有办法从整数中得到绝对值?
例如
-8
to
8
我已经尝试过使用UInt(),假设它会将Int转换为无符号值,但它没有用。
答案 0 :(得分:375)
标准abs()
功能在这里很有用:
let c = -8
print(abs(c))
// 8
答案 1 :(得分:28)
根据您的需要,使用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
答案 2 :(得分:3)
如果您想强制更改或保持正数。
方法如下:
UIViewControllers
答案 3 :(得分:0)
如果要从double或Int获得绝对值,请使用fabs
func:
var c = -12.09
print(fabs(c)) // 12.09
c = -6
print(fabs(c)) // 6