division durch null



  • hi,

    hab mal ne frage:
    ich muss einen algorithmus in c++ implementieren bei dem ich einen double wert berechne, ungefähr so: double d=a/b.
    b kann dabei auch den wert null annehmen (soll sogar) und ich bekomme in diesem spezialfall bei der ausgabe von d (cout << d << endl;) "inf" angezeigt (also korrekterweise unendlich). wenn ich diesen spezialfall behandeln will bräuchte ich so ne abfrage wie
    if (d == INF) oder sowas nur das funktioniert bei mir nicht.

    kann mir jemand sagen wie ich rausfinden kann ob d diesen spezialwert angenommen hat?

    danke.
    schranzi



  • Hallo,
    So direkt kannst du das nicht prüfen. Aber wie wäre, wenn du zuerst beide Zahlen einließt und wenn b == 0 ist, "inf" ausgibst, andernfalls a/b :).

    Gruß Caipi



  • ich würde das gerne direkt prüfen.
    keine chance? :-(((

    danke
    s.



  • versuch's mal mit

    if(d==numeric_limits<double>::infinity())
      cout<<"Infinite Result"<<endl;
    

    (oder du prüfst vor der Rechnung ab, ob b==0 ist)

    PS: Wozu brauchst du die Rechnung denn, wenn b sowieso Null sein soll?



  • hey,

    das sieht echt gut aus. ich kanns leider erst am montag ausprobieren, aber wenn das funktioniert wärs echt super!!!

    also vielen dank nochmal
    s.

    ps: b nimmt nur in einem spezialfall null an und den muss ich separat behandeln.



  • Du kannst nicht einfach a / b rechnen. Bestenfalls kommt da Inf raus, schlimmsten falls gibt's vom Prozessor eine FloatingPointException und dein Prozess stirbt. Um eine Prüfung auf 0 kommst du wohl nicht drum rum.



  • 7H3 N4C3R schrieb:

    Bestenfalls kommt da Inf raus, schlimmsten falls gibt's vom Prozessor eine FloatingPointException und dein Prozess stirbt.

    Meiner Meinung nach sollte man die Adverben vertauschen.



  • Bei a/b mit b == 0 ist INF nicht das korrekte Ergebnis.


Anmelden zum Antworten