整数から絶対値を取得する方法はありますか?
例えば
-8
to
8
Intを符号なしの値に変換すると仮定してUInt()を使用しようとしましたが、うまくいきませんでした。
標準のabs()
関数は、ここではうまく機能します。
let c = -8
print(abs(c))
// 8
Swift 4では、必要に応じて、次の2つの方法のいずれかを使用して問題を解決することができます(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
abs(_:)
メソッドからInt
の絶対値を取得しますSwift 4には abs(_:)
methodというグローバル数値関数があります。 abs(_:)
の宣言は以下のとおりです。
func abs<T>(_ x: T) -> T where T : Comparable, T : SignedNumeric
与えられた数の絶対値を返します。
次のコードスニペットは、Int
インスタンスの絶対値を取得するためにabs(_:)
グローバル関数を使用する方法を示しています。
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