Holen Sie sich die nächstkleinere Double-Nummer

Im Rahmen eines Unit-Tests muss ich einige Randbedingungen testen. Eine Methode akzeptiert aSystem.Double Streit.

Gibt es eine Möglichkeit, die zu bekommen?nächstkleinste doppelter Wert? (d.h. die Mantisse um 1 Einheitswert dekrementieren)?

Ich dachte darüber nachDouble.Epsilon Dies ist jedoch unzuverlässig, da es sich nur um das kleinste Delta von Null handelt und daher für größere Werte nicht funktioniert (d. h.9999999999 - Double.Epsilon == 9999999999).

Also, was ist der Algorithmus oder Code benötigt, so dass:

NextSmallest(Double d) < d

... ist immer wahr.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage