どなたか助けてください。

double a;
short b;
a = 0.29;
a = a * 100;
b = a;
printf("%d\n", b);

ってやると28と表示されます。
29と表示させるにはどうしたらよいでしょう?