Wie Sie verhindern, dass die division durch null?
ads = ads.Where(x => (x.Amount - x.Price) / (x.Amount / 100) >= filter.Persent);
wenn x.Betrag == 0 habe ich Fehler "Division durch null ist ein Fehler aufgetreten."
wie ich in dieser Anfrage ist es, zu vermeiden?
update:
diese geholfen, aber ich weiß nicht, wie die Entscheidung:
ads = ads.Where(x => (x.Amount - x.Price) / ((x.Amount / 100)==0?0.1:(x.Amount / 100)) >= filter.Persent);
gibt es einen anderen Weg?
Was ist der Typ von
Kann nicht, setzen Sie es in eine if-Anweisung und werden nur ausgeführt, dass bei code-x.Betrag > 0 ?
Ich denke, Sie sollten Fragen, warum haben Sie Positionen mit 0 Betrag 😛
In was für ein Geschäft ist
Iftode, kann dieses Feld auf 0 gesetzt werden
Amount
?Kann nicht, setzen Sie es in eine if-Anweisung und werden nur ausgeführt, dass bei code-x.Betrag > 0 ?
Ich denke, Sie sollten Fragen, warum haben Sie Positionen mit 0 Betrag 😛
In was für ein Geschäft ist
Amount - Price
eine sinnvolle Menge?Iftode, kann dieses Feld auf 0 gesetzt werden
InformationsquelleAutor Mediator | 2012-04-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
x.Amount > 0
scheint nur ein bisschen sicherer.es würde sicherlich nicht helfen
Was nicht helfen würde?
denis, warum würde es dann nicht helfen? müssen Sie Artikel mit Anzahl == 0? in diesem Fall, was sollte D in (-x.Preis - / D -) >= filter.Persent (btw sollte es nicht werden, Prozent in %?)
Was für Fehler? (Ich habe gesehen, das update zu der Frage: tun Sie das nicht, sieht es wirklich schlecht. Solche Lösungen zeigen, dass das problem noch nicht verstanden worden, die gut genug, oder dass Sie versuchen, etwas tun, was nicht sinnvoll ist. Was ist dein Ziel hier? Vergessen Sie nicht über die XY-problem.
InformationsquelleAutor Jon
Natürlich, Sie können immer implementieren Sie eine generische sicheren division-Methode und verwenden Sie es den ganzen Weg
Habe ich gewählt, dezimal Art, denn es richtet sich an alle nicht-nullwertfähige numerische Typen, dass ich mir bewusst bin.
Verwendung:
Ja, user420667, ich Stimme mit Ihnen überein. Während die vorgeschlagene Lösung kann nicht passen alle real-Welt Situationen, die ich denke, es passt die meisten von Ihnen. Nichtsdestotrotz sollte man immer das Gewicht der Konsequenzen, die sich auf die Verwendung eines fallback-Wert. Trotzdem, vielen Dank für deine Gedanken 😀
Ich persönlich würde die Rückkehr Zähler als fallback-Wert, da viele Male als Programmierer, Sie schnappen sich die Grafen von der DB, die Sie teilen möchten. Wenn COUNT(N) = 8 und COUNT(D) = 0, nur weil D noch nicht passiert, Rücksendung der Wert 8 ist näher an 8 / 1, was ist Ihre nächste real-Zahl.
InformationsquelleAutor Julio Nobre