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.