以下のコードを実行すると、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進数で考えてみると何か分かるかな?)