c进制变换

c进制转换printf(%d\n,sqrt(9))输出的数是0,为什么?[解决办法]printf(%d\n,(int)sqrt(9))或者printf

c进制转换
printf("%d\n",sqrt(9));
输出的数是0,为什么?
[解决办法]
printf("%d\n",(int)sqrt(9));
或者
printf("%f\n",sqrt(9));

函数原型是double sqrt(double); 
数值丢失了