Uzyskaj następny najmniejszy numer podwójny
W ramach testu jednostkowego muszę przetestować pewne warunki brzegowe. Jedna metoda akceptujeSystem.Double
argument.
Czy istnieje sposób na zdobycienastępny najmniejszy podwójna wartość? (tj. zmniejszyć mantysę o 1 wartość jednostkową)?
Rozważałem użycieDouble.Epsilon
ale to niewiarygodne, ponieważ jest to najmniejsza delta od zera, a więc nie działa dla większych wartości (tj.9999999999 - Double.Epsilon == 9999999999
).
Jaki jest więc algorytm lub kod, którego potrzebujesz:
NextSmallest(Double d) < d
... jest zawsze prawdziwe.