Stellen Sie sich vor, dass a - b & lt; c (a, b, c sind C # -Doppelwerte). Ist garantiert, dass a & lt; b + c ?
Danke!
BEARBEITEN
Nehmen wir an, dass der arithmetische Überlauf im Gegensatz zum folgenden Beispiel nicht auftritt:
Stellen Sie sich vor, dass Math.Abs (a) & lt; 1.0 & amp; & amp; Math.Abs (b) & lt; 1.0 & amp; & amp; Math.Abs (c) & lt; 1.0
Nein. Angenommen a = c, eine sehr große Zahl, und b ist eine sehr kleine Zahl. Es ist möglich, dass a - b
eine Repräsentation hat, die kleiner als a
ist, aber a + b
ist so nah an a
(und größer), dass es am Ende noch am genauesten als a
dargestellt werden kann.
Hier ist ein Beispiel:
%Vor%BEARBEITEN:
Hier ist ein weiteres Beispiel, das Ihrer bearbeiteten Frage entspricht:
%Vor%Mit anderen Worten, wenn wir eine sehr kleine Zahl von 1 subtrahieren, erhalten wir ein Ergebnis kleiner als 1. Wenn wir die gleiche Zahl zu 1 hinzufügen, erhalten wir aufgrund der Einschränkungen der doppelten Genauigkeit nur 1 zurück.