2015-10-08 20 views
6

Swift'de Double'dan daha doğru olan kayan nokta var mı? C içinde long double olduğunu biliyorum, ancak Apple'ın yeni programlama dilinde eşdeğerini bulamıyorum.Hızla iki katına göre daha hassas

Herhangi bir yardım çok takdir edilecektir!

+0

https ilginizi çekebilir üzerinde 32 bit mimarileri ve Çift üzerinde Float olan CGFloat, saklamak için kullanılan doğal tip içinde: //gmplib.org/ ... – jtbandes

+0

CoreFoundation türlerine geri dönmeniz ve "CUnsignedLongLong" gibi bir şey kullanmanız gerekebilir. – JAL

+0

@JAL: CUnsignedLongLong, bir kayan nokta türü değil, * integral * tipidir (64 bit tam sayı). –

cevap

9

Evet var! Tam olarak bunun için Float80 vardır, 80 bit (duh), 10 bayt depolar. Diğer kayan nokta türü gibi kullanabilirsiniz. Float32Float ve Float64 için sadece bir typealias olan Halen iOS 11+ 64 Bit platformunda çalışan Double

0

, Çift için biridir tümü arasında en yüksek tutar Swift, içinde Float32, Float64 ve Float80 olduğunu unutmayın. Float 6 ondalık hane olarak küçük olabilir, oysa

çift, en az 15 ondalık haneli bir hassasiyete sahiptir. Kullanılacak uygun kayan nokta türü, kodunuzda çalışması gereken değerlerin doğasına ve aralıklarına bağlıdır. her iki tipin de uygun olduğu durumlarda, Double tercih edilir.

Ancak CGFloat 64 bit mimarileri

https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html