首页 > c语言 为什么 printf("%d",pow(10,2)); 输出0

c语言 为什么 printf("%d",pow(10,2)); 输出0


pow函数的原型

double pow(double x, int y);

pow函数的返回值是double类型,占8给字节,10^2 = 100.0
100.0的二进制位表示
00 00 00 00
00 00 59 40
printf("%d",x)只会往后度4个字节,发现全是0,所以输出结果为0


解决办法
printf("%lf",x)往后读8个字节


因为pow返回的是一个double

解决方法

printf("%lf",pow(12,2));
【热门文章】
【热门文章】