İf then de float kantrol yapılamıyor mu?

Başlatan bilgehansahin84, 31 Mayıs 2009, 12:13:55

bilgehansahin84

Arkadaşlar

alan var float

if alan == 1.2 then
   PORTD.0=0
endif

gibi bir kıyaslama neden olmuyor? Proton Derleyicisi desteklemiyor mu?
Önceki kullanıcı adım : bilgehansahin84  ALLAH (c.c) kimseye kaldıramayacağı yükü yüklemez. İnsan bu düşünce ile hareket ederse, 'PES' etmek üzere olduğu tüm işlerinden başarıyla ayrılabilir.

vsalma

Microcontrolrle uğraşmayalı çok oldu yok ama floating point sayılarda karşılaştırma yapılırken direk eşitliğe bakılmaz. Sayıların birbirlerine yakınlığına bakılır.
abs(sayi1 - sayi2) < 0.001 ise eşit kabul edilir gibi. .

Dikkate almadığımız hassasiyet kısmında farklılıklar olabilir.

Tagli

Evet ben de o şekilde biliyorum. Mesela 1 + 1 = 2.000000001 olabilir.
Gökçe Tağlıoğlu

Maxim

evet float sayılarda noktadan sonraki haneleri göz ardı edince böyle sorunlar çıkabiliyor,benimde başıma gelmişti ,

1.200001 olabiliyor taglının dediği gibi ,

şöyle bir düzenleme yaparsan sorun kalmaz diye düşünüyorum ,

select alan

case 1.99 to 1.21
portd.0 =0

endselect