double: wie fragt man unendlich ab?



  • Hallo,
    ich stell grad entsetzt fest, dass man doubles einfach so durch 0 teilen darf...

    double x = 1.0;
    double y = 0.0;
    double z = x / y;
    

    Das einzige was passiert ist, dass z dann den Wert
    1.#INF000000000000
    annimmt (wird im Debugger angezeigt).

    Mich würde jetzt interessieren, wie man einen Wert auf unendlich testen kann?
    (ok, man könnte auch y vorher auf 0 testen...)

    Oder auch die Zuweisung von 1.#INF000000000000 an einen double wäre interessant.

    double foo = 1.#INF000000000000
    oder
    foo == 1.#INF000000000000
    

    wird nicht übersetzt.

    thx
    Martin



  • = DBL_MAX
    :xmas2:



  • noch nie gemacht, so vielleicht

    >  std::numeric_limits<double>::max();
    


  • Ich bin mir gerade nicht sicher ob es sowas wie man: isinf auch für C++ gibt.



  • miller_m schrieb:

    noch nie gemacht, so vielleicht

    >  std::numeric_limits<double>::max();
    

    So nicht (liefert wohl den höchsten darstellbaren gültigen Wert).

    Aber so gehts:

    if (z == std::numeric_limits<double>::infinity())
    

    @all:
    Danke für die schnellen Antworten



  • anonymus schrieb:

    miller_m schrieb:

    noch nie gemacht, so vielleicht

    >  std::numeric_limits<double>::max();
    

    So nicht (liefert wohl den höchsten darstellbaren gültigen Wert).

    wie gesagt war ja auch nur geraten 😃



  • miller_m schrieb:

    anonymus schrieb:

    miller_m schrieb:

    noch nie gemacht, so vielleicht

    >  std::numeric_limits<double>::max();
    

    So nicht (liefert wohl den höchsten darstellbaren gültigen Wert).

    wie gesagt war ja auch nur geraten 😃

    dafür hast mich auf die richtige Spur gebracht 🙂


Anmelden zum Antworten