Yapmak C kayan nokta şamandıra (yerine çift)rakamları
C, kayan nokta sabitleri () örneğin 1.23
3* *türü olduğu bilinmektedir. Sonuç olarak, bütün bunları içeren herhangi bir hesaplama iki katına yükseltilir.
Sadece tek duyarlıklı (float
) numaraları destekleyen kayan nokta birimi olan gerçek zamanlı gömülü bir sistem üzerinde çalışıyorum. Tüm değişkenler float
, ve bu hassas yeterlidir. (Ne de gelemez) double
hiç ihtiyacım yok. Ama her zaman bir şey gibi
if (x < 2.5) ...
yazılı, felaket olur: yavaşlama büyüklük. iki tane olabilir Tabii ki, direkt cevap yazmak için
if (x < 2.5f) ...
ama bu çok kolay bayan (ve zor tespit edene kadar çok geç), özellikle bir 'yapılandırma' değer #define
'd ayrı bir dosya ile bir daha az disiplinli (eski ve yeni) geliştirici.
Derleyici soneki ile f
gibi (kayan nokta) tüm rakamları kaydır olarak tedavi etmek, zorlamak için bir yol var mı? Eğer gözlük aykırı olsa bile, umurumda değil. Veya başka bir çözüm? Derleyici gcc, bu arada.
CEVAP
12* *bayrak kullanılabilir. Kayan nokta sabitleri tam olarak bu değil hatta tek duyarlıklı yüklü olur.
Not - Bu da çift duyarlıklı değişkenler üzerinde işlemler tek hassas sabitleri kullanır.
Max. iPhone çift/bir kayan nokta değer...
'tek bir kesinlik arasındaki fark...
Çift nokta arasındaki farklılıklar&;.....
Artım mümkün olan en küçük miktarda py...
İyileştirme etkinleştirilmiş farklı ka...