- fchao-Sinus-Wechselrichter AliExpress         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 25 von 25

Thema: Ergebnis einer ungültiger Rechnung erkennen?

  1. #21
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.03.2013
    Beiträge
    242
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Du kannst nicht x mit NAN vergleichen,
    Hier wird das aber so gemacht! Daher mein Versuch

    http://http://forum.arduino.cc/index.php?topic=46912.0

  2. #22
    HaWe
    Gast
    ich persönlich bin nicht überzeugt, dass der Code valide ist, immerhin ist allerdings in Arduinisch einiges möglich, was sonst in C so nicht möglich ist.
    Aber es ist ja auch C++ im Hintergrund: Wer weiß, welche Klassen da verdeckt eingeschlossen wurden, welche Exceptions da verdeckt ausgelöst werden, und was da privat oder public ist.
    Die Tatsache, dass der Code bei dir aber nicht kompiliert wird, stützt zumindest meine Zweifel.

    - - - Aktualisiert - - -

    hier findet man weiterführende Erklärungen:

    http://stackoverflow.com/questions/1...n-and-inf-in-c

    The existence of INFINITY is guaranteed by C99 (or the latest draft at least), and "expands to a constant expression of type float representing positive or unsigned infinity, if available; else to a positive constant of type float that overflows at translation time."

    NAN may or may not be defined, and "is defined if and only if the implementation supports quiet NaNs for the float type. It expands to a constant expression of type float representing a quiet NaN."

    Note that if you're comparing floating point values, and do:

    a = NAN;

    even then,

    a == NAN;

    is false.
    One way to check for NaN would be:

    #include <math.h>
    if (isnan(a)) { ... }

    You can also do: a != a to test if a is NaN.

    There is also isfinite(), isinf(), isnormal(), and signbit() macros in math.h in C99.

    C99 also has nan functions:

    #include <math.h>
    double nan(const char *tagp);
    float nanf(const char *tagp);
    long double nanl(ocnst char *tagp);

  3. #23
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.03.2013
    Beiträge
    242
    Hallo,

    das geht mir nun doch zu weit in die Tiefe.
    Da es , wie ich oben schon sagte, für mich zZ kein Problem darstellt, möchte ich mich damit nicht weiter beschäftigen und euch auch nicht.

    Danke

    vG

    fredyxx

  4. #24
    HaWe
    Gast
    du hast Recht, es ist wirklich ein sehr ausgefallenes Spezial-Rand-Thema.
    Normalerweise unmschifft man das Problem ungültiger Funktionswertbereiche eben anders, wie bereits beschrieben.

    Übrigens ist wichtig für dich zu wissen:
    C-Programme können durchaus absolut unbemerkt vom Beobachter Myriaden von nans bei Berechnungen produzieren, ohne dass das Programm irgendwie in welcher Weise auch immer auffällig wird (sich aufhängt, abstürzt, was auch immer)
    - nur wenn du zufällig einen Wert genauer betrachten willst, und eine Ausgabe auf den Bildschirm machst, fällt dir plötzlich ein "nan" auf.

    Selber schon erlebt, bei einem Benchmark-Test, der für manche Benchmarks auf manchen Systemen unglaublich (unglaubhaft) schnell lief.
    Der Grund war, dass es zu nans kam, mit denen er einfach die folgenden Operationen nicht mehr durchgeführt hat, und daher war er damit ntl sehr schnell fertig und hat dann einfach die nächsten Programmschritte etwas früher als geplant in Angriff genommen...

  5. #25
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    18.03.2013
    Beiträge
    242
    Interessanter Hinweis, danke.

    vG

    fredyxx

Seite 3 von 3 ErsteErste 123

Ähnliche Themen

  1. Methoden zum Erkennen einer Fehlerbedingung in Microcontroller-Systemen
    Von Dirk im Forum Software, Algorithmen und KI
    Antworten: 23
    Letzter Beitrag: 24.03.2016, 21:01
  2. Sensor oder Schalter zum erkennen einer PokerKarte
    Von Andreas1984 im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 1
    Letzter Beitrag: 25.12.2013, 02:17
  3. Division mit Nachkommastellen als Ergebnis???
    Von erik_wolfram im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 22.08.2011, 17:13
  4. Beenden einer ISR erkennen
    Von hacker im Forum C - Programmierung (GCC u.a.)
    Antworten: 12
    Letzter Beitrag: 12.08.2009, 18:34
  5. Wie Abzweigung einer Linie erkennen?
    Von p_mork im Forum Software, Algorithmen und KI
    Antworten: 2
    Letzter Beitrag: 16.08.2007, 11:39

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen