, bu import Darwin
aracılığıyla Swift erişebileceği C float.h
başlığında, tanımlanmıştır.
import Darwin
let fmax = FLT_MAX
let dmax = DBL_MAX
Bu kabaca 3.4 * 10^38
ve 1.79 * 10^308
sırasıyla.
Ancak kayan nokta sayılarıyla o kadar basit değil (kayan nokta sayılarıyla asla basit değildir). Bu sayıda tutarak zaman, böylece, çok küçük sayılarla kesinlik kaybetme benzer bir şekilde hassas kaybetmek:
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
muhtemelen bu sınırların karşı tazelemek olabilecek bazı hesaplamalar girmeden önce Yani, muhtemelen okumalısınız kayan nokta üzerinde. Here ve here muhtemelen iyi bir başlangıçtır. -
extension Double {
static var MIN = -DBL_MAX
static var MAX_NEG = -DBL_MIN
static var MIN_POS = DBL_MIN
static var MAX = DBL_MAX
}
küçük minimum ve maksimum kullanmayın:
Xcode oyun alanında kodu deneyin ve Float için Double (Çift) ve 340,282,346,638,529,000,000,000,000,000,000,000,000,0 (ve sonsuzluk) elde edin. Neden Double ve Int64’in 64bit’i var, ancak iki katı daha fazla numara kaydedebiliyor? –
Kayan nokta temsilini öğrenmelisiniz. [Wikipedia makalesi] (http://en.wikipedia.org/wiki/Floating_point) ve ayrıca [bu intro] ile başlayın (http://introcs.cs.princeton.edu/java/91float/) –
Teşekkür ederim. çok. Hepsini okuyacağım. –