恥は/dev/nullへ by 初心者

プログラミング素人がのろのろと学んだことをつづっています♪

疑問

 

以下のコードを実行すると、1.0 から 10.0 まで表示されます。

 

/* ren4-7-1.c */
#include <stdio.h>

int main(void)
{
    double d;
    for (d = 1; (int)d <= 9; d += 0.1) {
        printf("%.1lf\n", d);
    }

    return 0;
}

 

dの値が 10.0 になった時、(int)d の値は 10 になるので、10.0 は表示されないものと思っていたのですが・・・、これは何故でしょうか??

(ヒマな時に2進数で考えてみると何か分かるかな?)