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.