鱼C论坛

 找回密码
 立即注册
查看: 1524|回复: 5

[已解决]pow函数的使用

[复制链接]
发表于 2018-1-2 00:46:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 木Muk 于 2018-3-29 09:36 编辑

这个是查了好多资料,都感觉自己要疯了,我使用了pow(x,y)求出来的数值如果用%d输出就会出错,int 强制转换都会变成0.0000……
好吧,求解
最佳答案
2018-1-2 09:52:53
pow 函数有两个参数, 两个参数都是浮点型
如果你一定要用%d 输出 那么就一定要转换数据类型。


  1. #include <stdio.h>
  2. #include <math.h>
  3. int main(){
  4.         double x,y = 3;
  5.         x = y;
  6.         printf ("%f\n",pow(x,y));
  7.        
  8.         // ---------------------或者
  9.         int x_1,y_1 = 3;
  10.         x_1 = y_1;
  11.         printf ("%d",(int)(pow(x_1,y_1)));
  12.        
  13.         return 0;
  14.        
  15. }
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-2 07:12:52 From FishC Mobile | 显示全部楼层
把传进去的值强制转换为double即可
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-2 09:52:53 | 显示全部楼层    本楼为最佳答案   
pow 函数有两个参数, 两个参数都是浮点型
如果你一定要用%d 输出 那么就一定要转换数据类型。


  1. #include <stdio.h>
  2. #include <math.h>
  3. int main(){
  4.         double x,y = 3;
  5.         x = y;
  6.         printf ("%f\n",pow(x,y));
  7.        
  8.         // ---------------------或者
  9.         int x_1,y_1 = 3;
  10.         x_1 = y_1;
  11.         printf ("%d",(int)(pow(x_1,y_1)));
  12.        
  13.         return 0;
  14.        
  15. }
复制代码

QQ截图20180102094708.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-2 10:28:43 | 显示全部楼层
风过无痕丶 发表于 2018-1-2 09:52
pow 函数有两个参数, 两个参数都是浮点型
如果你一定要用%d 输出 那么就一定要转换数据类型。

也就是说pow(x, y)中x,y不能直接用常数传输,全都必须要用参数传入?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-2 11:08:33 | 显示全部楼层
木Muk 发表于 2018-1-2 10:28
也就是说pow(x, y)中x,y不能直接用常数传输,全都必须要用参数传入?

当然可以直接使用常数! 我觉得你这样学 会把自己绕死。。。
  1. #include <stdio.h>
  2. #include <math.h>

  3. int main(){
  4.        
  5.         printf ("pow(3,2) = %f\n",pow(3,2));
  6.         printf ("new_pow(3,2) = %d\n",(int)pow(3,2));
  7.         return 0;
  8. }
复制代码


1. pow 参数一  参数二 都是浮点型, 返回值也是浮点型。
2. printf 并不会自动转换类型,你让它用什么方式输出它就怎么输出。
3. 浮点型和整型的存放方式都不一样, 浮点型用的LEEE 754标准存放, 整型用 补码的方式存放
3.所以你觉得 不转换类型 他们能正确输出吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-1-2 16:48:51 | 显示全部楼层
风过无痕丶 发表于 2018-1-2 11:08
当然可以直接使用常数! 我觉得你这样学 会把自己绕死。。。

我突然发现我的pow(x, y)用的是对的,只是其他地方用错了

打扰了

谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-18 09:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表