web-dev-qa-db-ja.com

Swift - 絶対値に変換

整数から絶対値を取得する方法はありますか?
例えば

-8  
to  
 8

Intを符号なしの値に変換すると仮定してUInt()を使用しようとしましたが、うまくいきませんでした。

169

標準のabs()関数は、ここではうまく機能します。

let c = -8
print(abs(c))
// 8
377
B.S.

Swift 4では、必要に応じて、次の2つの方法のいずれかを使用して問題を解決することができます(CGFloat、Doubleなどの他の数値変数にも使用できます)。


#1 Intプロパティからmagnitudeの絶対値を取得します

Swift 4では、Intmagnitude プロパティがあります。 magnitudeの宣言は以下のとおりです。

var magnitude: UInt { get }

数値xの場合、x.magnitudexの絶対値です。

次のコードスニペットは、magnitudeインスタンスの絶対値を取得するためにIntプロパティを使用する方法を示しています。

let value = -5
print(value.magnitude) // prints: 5

#2 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
28
Imanou Petit

数字を強制的に変更したり、正の値にしたい場合。
これがその方法です。

abs() for int
fabs() for double
fabsf() for float
4
Sourabh Kumbhar

DoubleまたはIntから絶対値を取得したい場合は、fabs funcを使用します。

var c = -12.09
print(fabs(c)) // 12.09
c = -6
print(fabs(c)) // 6
0
Hamed