I'd recommend incrementing a long and then converting it to a double, using the below code:
double dbl;
for (long lng = long.MinValue; lng < long.MaxValue; ++lng)
{
dbl = BitConverter.Int64BitsToDouble(lng);
}
dbl = BitConverter.Int64BitsToDouble(long.MaxValue);
It'll keep you from potentially underflowing if you were to just take a double and increment it by some number.
Be aware, you'll get some special 'case' values from doing this, like infinity and NaN and such. You'll probably want to use the static methods on double to remove those cases or just constrain the value between Min/Max. Something like that...
Have fun with your ~18,446,744,073,709,551,616 test cases. :D