Swift - 转换为绝对值

问题描述 投票:166回答:4

有没有办法从整数中获取绝对值? 例如

-8  
to  
 8

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

ios iphone swift
4个回答
372
投票

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

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

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

3
投票

如果你想强迫一个数字改变或保持积极的。 这是方式:

abs() for int
fabs() for double
fabsf() for float

0
投票

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

var c = -12.09
print(fabs(c)) // 12.09
c = -6
print(fabs(c)) // 6
© www.soinside.com 2019 - 2024. All rights reserved.