SORU
28 AĞUSTOS 2015, Cuma


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
28 AĞUSTOS 2015, Cuma


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Google Analytics

    Google Analy

    25 ŞUBAT 2008
  • Mismag822 - The Card Trick Teacher

    Mismag822 -

    18 EKİM 2008
  • TokShogun

    TokShogun

    6 HAZİRAN 2009