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

  • Codecourse

    Codecourse

    3 ŞUBAT 2009
  • technodromeband's channel

    technodromeb

    28 NİSAN 2011
  • TecnoTutosPC

    TecnoTutosPC

    19 Kasım 2012