if Abfrage in C funktioniert nicht

Gast #696851
Lesenswert?
• ▲
▼
Hallo
kann mir jemand sagen warum bei dieser Abfrage immer true herauskommt?
Ich möchte erreichen das Tist in einem gewissen Intervall liegt.
z.B Tsoll = 25.0 dann soll die Bedingung erfüllt sein wenn Tist zwischen 
24.99 und 25.01 ist.

if((Tist > (Tsoll-0.01)) && (Tist < (Tsoll+0.01)))


Hoffe es liegt nicht daran dass die Variablen den Typ float besitzen.

Danke
Werner
Gast #696877
Lesenswert?
• ▲
▼
Vielleicht macht Tist minimale Änderungen von 0.1Kelvin oder so, dann 
wird der Ausdruck immer true wenn Du nicht Tsoll genau triffs. Ich 
gleube nicht, daß Du einen Sensor benutzt, der 1/100 Kelvin auflöst.

Gute Nacht
Detlef
Gast #696905
Lesenswert?
• ▲
▼
Der Sensor geht auf 1/5000 genau (wenn man mal vom Rauschen absieht).
Die Regelung auf wenige 1/1000 (ginge wahrscheinlich noch besser).

So ein blöder Fehler, ich hab lediglich vergessen den Ausgang zurück zu 
setzen falls die Bedingung nicht erfüllt ist.

Habs aber trotzdem umgeschrieben auf if(fabs(Tist-Tsoll)<=0.1), weil es 
besser lesbar ist.

Danke für eure Hilfe
Werner
Gast #696934
Lesenswert?
• ▲
▼
>Der Sensor geht auf 1/5000 genau (wenn man mal vom Rauschen absieht).
>Die Regelung auf wenige 1/1000 (ginge wahrscheinlich noch besser).

Ist zwar OT, aber du meinst doch sicherlich KiloKelvin, oder?

Oliver

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren