I first tried this (in vb.net)
(Double.MinValue + Double.Epsilon) > Double.MinValue
but that evaluates to false. Then I tried this
(Double.MinValue + 999999999999999999) > Double.MinValue
that evaluates to false, too.
Why?
Adding a very small (magnitude) value to a very large (magnitude) makes: virtually no difference. In this case, the difference is so small that it cannot be represented within the precision of double. Basically:
double.MinValue + (most things) === double.MinValue
It doesn't guarantee to be able to represent every single double between double.MinValue and double.MaxValue, and as you increase the magnitude, the absolute resolution of what can be represented decreases.
Don't forget: double.MinValue has 308 digits before the decimal place. You are altering very few of them. You are basically doing:
-179769313486232000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000 // yikes!
+ 999999999999999999
Keep in mind that double has roughly 17 digits of precision; so about 291 digits of that huge number can be largely ignored.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With