printf関数について教えて下さい。

float fdata = 1.0;

printf("fdata = %d : %f\n", fdata, fdata);

これを実行すると、

fdata = 0 : 0.000000

このようになるのですが、なぜですか?
%f出力は1.000000になると思うのですが。