wert "unendlich" abfragen



  • hallo allerseits,

    ich möchte gerne in C (nicht C++) abfragen, ob ein double den Wert unendlich hat. Wie kann ich das machen?

    Vielen Dank,

    Liebe Grüße, Susanne



  • wenn ich rausgefunden habe, dass der wert unendlich ist... was passiert denn
    wenn ich unendlich mit unendlich addiere? kommt dann auch unedlich raus?

    troll 👎



  • steff3 schrieb:

    wenn ich rausgefunden habe, dass der wert unendlich ist... was passiert denn
    wenn ich unendlich mit unendlich addiere? kommt dann auch unedlich raus?

    troll 👎

    Was soll denn dieses Kommentar? Ich geb dir das "Kompliment" mal zurueck!

    @Topic: Afair gibt es die Funktionen nur mit floats im Standard, wenn man aber double->float castet sollte INF (und NaN) eigentlich nicht verloren gehen. Die Funktion (oder glaub Makro) nennt sich isinf() aus math.h.

    Aber dafuer gibts hier eigentlich ein C-Forum 😉



  • Feldsalat schrieb:

    ich möchte gerne in C (nicht C++) abfragen, ob ein double den Wert unendlich hat. Wie kann ich das machen?

    hi,
    so'n 'double' besteht ja für gewöhnlich aus 64 bits. ganz links (bit63 wenn man von 0 anfängt zu zählen) ist das vorzeichen. die nächst tieferen (ich glaube das waren insgesamt 11 bits) sind sind der exponent. wenn die alle auf '1' stehen, dann haste 'INF' (passt nicht mehr in ein double) oder 'NaN' (not a number).



  • Hallo zusammen,

    vielen Dank für Eure Hilfe, tut mir leid, ich bin noch ein ziemlicher C-newbie.

    ich kriege isinf() auch nicht ans laufen, mein Code sieht so aus:

    #include <stdlib.h>
    #include <math.h>

    int main()
    {
    double c;

    int j;
    c = 999999999999999;
    j = isinf(c);
    printf("j: \n", j);
    system("PAUSE");

    return 0;
    }

    Fehlermeldung: undefined reference to `isinf'
    anscheinend wird math.h nicht gefunden?
    Würde mich sehr freuen, wenn mir nochmal jemand helfen könnte 🙂

    Vielen Dank, Susanne



  • Der Code ist so schon richtig, nur du must die Bibliothek mitlinken. Beim g++ einfach ein '-lm' anhaengen.



  • Feldsalat schrieb:

    ich möchte gerne in C (nicht C++) abfragen, ...

    Und warum stellt du die Frage dann nicht gleich im C-Subforum, sondern im
    C++-Subforum. 😕 😕 😕



  • #include <limits>
    
    bool ist_unendlich(double wert) {
       return (wert == std::numeric_limits<double>::infinity());
    }
    


  • Hi, vielen Dank,

    ich benutze DevC++ und math.h ist eigentlich im richtigen Ordner. Soll ich vielleicht eine andere IDE verwenden? (Lass mir gerne eine empfehlen 🙂 )
    Ansonsten weiss ich nicht, wie ich da -lm einbringen soll...

    Gruß, Susanne


Anmelden zum Antworten