首页 > 解决方案 > C中的浮点值查询

问题描述

我想得到 r^(a1/b1) 的答案,但我的代码没有给出正确的输出,有人可以帮忙吗?

int main()
{
  float rat;
  float r=2.0;
  int a1=2;
  int b1=4;
  rat= pow(r,(a1/b1));
  printf("%f",rat);
    
return 0;
}

我的输出即将1.000000 到来1.414000。我的条件是我必须将a1b1作为整数值。

标签: c

解决方案


和是a1整数b1。当你除以它时(a1/b1),你会得到输出为零。因此,在内部,该pow函数将按原样执行2^0,这1就是您在此处获得的输出。

因此,您必须做的更改是将a1tofloatb1to 转换为float。然后这将起作用。

我将在这里发布一个工作代码。

#include <stdio.h>

int main ()
{
  float rat;
  float r = 2.0;
  int a1 = 2;
  int b1 = 4;
  rat = pow (r, ((float)a1 / b1)); //Casting the a1 to float
  printf ("%f", rat);
  return 0;
}

输出1.414214将被打印出来。在这里,您可以看到我将 to 投射a1float. 您也可以应用相同的铸件b1。这也将起作用。

有关更多信息,您可以去为什么将两个整数相除不会得到浮点数?

希望它能解决你的问题。


推荐阅读