char in double

Gast #2502451
Lesenswert?

Hallo zusammen,
ich benutze volgende funktion:
double chartodouble(char *grad)
{
  double ergebnis = 999.999; // ungültiger Wert
  double d;
  double g;
  char *endp;

  g = strtod(grad, &endp);
  if (grad != endp && *endp == '\0')
  {

    d = trunc(g/100);
    ergebnis = d + (g - d*100)/60;

  }
  return ergebnis;
}

aufgerufen wird die so:
chartodouble("123.456");

im AVRStudio5 kann ich es nicht kompilieren.
sobald ich "g = strtod(grad, &endp);" rausnehme. Geht alles. Natürlich 
ohne berechnung.
included sind:
#include <math.h>
#include <stdint.h>
#include <stdlib.h>

Kann mir bitte jemand helfen. Ich weiss nicht weiter.

Danke
Gruss
Milan
#2502678
Lesenswert?

milan schrieb:
> double ergebnis = 999.999; // ungültiger Wert


für sowas definiert man normalerweise wenigstens ein define, damit beide 
Seiten (aufrufer und Berechner) das selbe testen
übrigends  haben IEEE-Floats für sowas gibts extra Werte NaN wäre das in 
deinem Fall
Leider scheint es Compilerabhängig zu sein, wie man einem Float/Double 
einen NaN Wert zuweist

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