#include <stdio.h>
main()
{
float P,r ;
for (P = 1; P <= 9 ; P++)
{
r = P / 10 ;
printf("Hello! r=%f \n",r) ;
}
}

↑このとき「Hello!」は9回出ますが

#include <stdio.h>
main()
{
float r ;
for (r = 0.1; r <= 0.9 ; r=r+0.1)
{
printf("Hello! r=%f \n",r) ;
}
}
↑このときは「Hello!」が8回しか出ないのはなぜですか?
r=0.9のとき、なぜか出力がされません。
Cは初めてなので初歩的な勘違いかもしれませんが、解説おねがいします。