BEARBEITEN: Ich bekomme in letzter Zeit viele Abstimmungen dazu ... also dachte ich, ich würde nur eine Notiz hinzufügen, dass diese Antwort geschrieben wurde, bevor die Frage zuletzt bearbeitet wurde, wobei die Rückgabe von null als Option hervorgehoben wurde. .das scheint sehr akzeptabel. Einige meiner Antworten richteten sich in den Kommentaren an Bedenken wie die von Edwardo, der anscheinend die Rückgabe einer 0 befürwortete. Dies ist der Fall, gegen den ich mich beschimpfte.
ANTWORT: Ich denke, hier liegt ein Problem zugrunde, nämlich dass die Division durch 0 nicht legal ist. Es ist ein Hinweis darauf, dass etwas grundlegend falsch ist. Wenn Sie durch Null teilen, versuchen Sie, etwas zu tun, das mathematisch nicht sinnvoll ist, sodass keine numerische Antwort gültig ist. (Die Verwendung von null ist in diesem Fall sinnvoll, da es sich nicht um einen Wert handelt, der in späteren mathematischen Berechnungen verwendet wird.)
Also fragt Edwardo in den Kommentaren "Was ist, wenn der Benutzer eine 0 eingibt?" Und er befürwortet, dass es in Ordnung sein sollte, eine 0 als Gegenleistung zu erhalten. Wenn der Benutzer den Betrag auf Null setzt und Sie möchten, dass 0 zurückgegeben wird, sollten Sie Code auf der Ebene der Geschäftsregeln eingeben, um diesen Wert abzufangen und 0 zurückzugeben. Es gibt keinen Sonderfall, in dem Division durch 0 = 0.
Das ist ein subtiler Unterschied, aber es ist wichtig ... weil das nächste Mal, wenn jemand Ihre Funktion aufruft und erwartet, dass sie das Richtige tut, etwas Funky funktioniert, das mathematisch nicht korrekt ist, sondern nur den speziellen Randfall behandelt, den es hat gute Chance, später jemanden zu beißen. Sie teilen nicht wirklich durch 0 ... Sie geben nur eine schlechte Antwort auf eine schlechte Frage zurück.
Stellen Sie sich vor, ich codiere etwas und vermassle es. Ich sollte einen Skalierungswert für die Strahlungsmessung einlesen, aber in einem seltsamen Randfall, den ich nicht erwartet hatte, las ich 0 ein. Dann lasse ich meinen Wert in Ihre Funktion fallen ... Sie geben mir eine 0 zurück! Hurra, keine Strahlung! Außer es ist wirklich da und es ist nur so, dass ich einen schlechten Wert abgegeben habe ... aber ich habe keine Ahnung. Ich möchte, dass die Division den Fehler auslöst, weil es die Flagge ist, dass etwas nicht stimmt.