現在の学習スウィフト、maxおよびmin値を見つける方法があります異なる種類の整数Int.max
やInt.min
など。
DoubleとFloatの最大値を見つける方法はありますか?さらに、この種の質問についてはどのドキュメントを参照する必要がありますか?現在、AppleのSwiftプログラミング言語を読んでいます。
Double.max
はありませんが、C float.h
ヘッダーで定義されており、import Darwin
を介してSwiftでアクセスできます。
import Darwin
let fmax = FLT_MAX
let dmax = DBL_MAX
これらはおおよそ3.4 * 10^38
と1.79 * 10^308
です。
ただし、浮動小数点数ではそれほど単純ではないことに注意してください(浮動小数点数では決して単純ではありません)。これほど大きな数を保持する場合、非常に小さな数で精度を失うのと同様の方法で精度を失います。
let d = DBL_MAX
let e = d - 1.0
let diff = d - e
diff == 0.0 // true
let maxPlusOne = DBL_MAX + 1
maxPlusOne == d // true
let inf = DBL_MAX * 2
// perhaps infinity is the “maximum”
inf == Double.infinity // true
そのため、これらの制限を克服する可能性のある計算を行う前に、おそらく浮動小数点を調べる必要があります。 Here と here は、おそらく良い出発点です。
Swift 3現在、次を使用する必要があります。
CGFloat.greatestFiniteMagnitude
Double.greatestFiniteMagnitude
Float.greatestFiniteMagnitude
AVの答えは結構ですが、これらのマクロを覚えるのは難しく、少し自明ではないので、最終的にDouble.MIN
と友人を動作させました:
extension Double {
static var MIN = -DBL_MAX
static var MAX_NEG = -DBL_MIN
static var MIN_POS = DBL_MIN
static var MAX = DBL_MAX
}
小文字のminとmaxは使用しないでください。これらの記号はSwift 3で使用されます。
書くだけ
let mxFloat = MAXFLOAT
あなたは迅速にフロートの最大値を取得します。