Veja o próximo menor número duplo
Como parte de um teste de unidade, preciso testar algumas condições de contorno. Um método aceita umSystem.Double
argumento.
Existe uma maneira de obter opróximo menor valor duplo? (isto é, diminuir a mantissa em 1 valor unitário)?
Eu considerei usarDouble.Epsilon
mas isso não é confiável, já que é apenas o menor delta de zero e, portanto, não funciona para valores maiores (por exemplo,9999999999 - Double.Epsilon == 9999999999
).
Então, qual é o algoritmo ou código necessário para que:
NextSmallest(Double d) < d
... é sempre verdade.