double wert erkennen

Lernen

Grünschnabel
Hallo zusammen,
ich hätte eine Frage, ich muss zu einer Funktion daten übergeben, die guten sind double werte, aber dazwischen sind error werte die so bezeichnet sind zb: #E, sie sind allgemein keine Werte.
Ich suche irgendeine Function in c/c++ die mir unterscheidet zwischen double und Errorwerte.
Vielen Dank.:)
 
Hallo,

erstellst du diese Funktion erst selber oder gibt es schon? Im letzteren Fall dürfte die Art und Weise der Übergabe ja schon festgelegt sein.
Woher bekommst du die Werte bzw. in welcher Form liegen sie denn vor? Mit der Angabe "#E" kann ich nichts anfangen; ist das ein String?

Gruß
MCoder
 
Hallo,

erstellst du diese Funktion erst selber oder gibt es schon? Im letzteren Fall dürfte die Art und Weise der Übergabe ja schon festgelegt sein.
Woher bekommst du die Werte bzw. in welcher Form liegen sie denn vor? Mit der Angabe "#E" kann ich nichts anfangen; ist das ein String?

Gruß
MCoder

Die Werte bekomme ich von einem Abstandssensor und sind double, wenn der Sensor nicht auf den Gegenstand schiesst dann bekommt man solche werte die keine double sind (zb #E)
die Funktion ist nicht das Problem, aber ich muss die Werte zu der Funktion übergeben und dort muss ich abfragen ob die Werte double sind oder Error(keine Werte sondern nur so zeichen), ich habe auch eine Funktion in C gefunden die heisst " isnan () " , aber mein Compiler (visual studio 2005) erkennt die funktion nicht obwohl ich "cmath.h" einfüget habe.
Hast du vielleicht irgendeine idee warum ich den fehler bekomme, oder kennst du irgend eine andere Funktion.

Danke.
 
Hallo,

die Funktion heißt "_isnan()" (mit Unterstrich) und du musst als Include <float.h> verwenden.

Gruß
MCoder

danke

ich habe sie gerade ausprobiert, aber sie macht kein Unterschied zwischen 112.45 und #E.weiss nicht warum, und allgemein mein funktion schaut so aus:

bool Vergleich (double wert)
{
if (wert) // hier möchte ich abfragen ob der wert double oder nicht

return 1;

else

return 0;

}
danke
 
da du den parameter auf double überprüftst, der aber immer double ist, da der innerhalb der funktion angelegt wurde, wird die überprüfung immer wahr sein...andererseits weiss ich grad nicht wie so ne NAN ausschauten soll

wie gesagt, ich denke das du das fehlerzeichen, implizit in nen doublewert konvertierst

edit:
also zumindest unter linux schauts so aus, als ob da nur gewisse zustände von exponent und mantisse überprüft wird
 
Zuletzt bearbeitet:
Hmm, scheinbar entspricht die NaN-Darstellung nicht dem erwarteten Format. Bekommst du die Sensorwerte denn gleich als double oder werden sie irgendwo im PC nochmal gewandelt?

Gruß
MCoder
 
Ich dachte nur, dass die Sensorwerte ja über irgendeine Schnittstelle (USB, Seriell usw.) ankommen und dort vielleicht noch nicht als double aufschlagen. Evt. könnte man noch ansetzen.

Gruß
MCoder
 
an sich np wenn es nicht 100derte von verschiedenen error werten gibt was ich jetzt einmal stark annehme (denke nicht das mehr als 10 verschiedene sind). if abfragen ftw
überprüfung der error werte würde ich dir eh raten daß du z.b. auch immer eine ausgabe pro error wert haste oder diese irgenwo in ner log speicherst sonst ärgert sich manchmal stunden an dem programm für den sensor in echt leigt es an ihm kaputt oder so immer sinnvoll

mfg
 
Zurück