It looks like you're assuming that the increment will be the same value you're starting our with, and that's not the case. As Griff already pointed out, the increment will always be 1 (0r 1.0 in your case).
If you want to use anything other than an integer increment, you have to use a
do/while
loop. Also, since you're working with a floating point value, you should call
Math.Round
if you want the loop to stop at precisely 5.0.
double i = 0d;
do
{
i = Math.Round(i+0.00001d, 5);
} while (i < 5.0d);
If this isn't what you're trying to do, improve your question so someone can provide you with the answer you need.