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

pokerface
  • 628

clipboard.png

回复
阅读 3.7k
2 个回答
✓ 已被采纳

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));
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏