如何在c中使用浮点数作为指数

时间:2016-10-01 15:31:13

标签: c function math floating-point exponent

我正在运行这段简单的c代码

#include "stdafx.h"
#include "math.h"

int main()
{
float i = 5.5;
float score = 0;

score=i/(i+(2^i));

}

并且编辑说,浮动i"必须是一个整数或无范围的枚举值",并且我必须保持浮动。如何在c?

中使用float作为指数

2 个答案:

答案 0 :(得分:5)

改变这个:

score=i/(i+(2^i));

到此:

score = i / (i + pow(2, i));

^是XOR运算符,您需要pow(double base, double exponent);把所有东西放在一起:

#include "math.h"
#include "stdio.h"

int main()
{
        float i = 5.5;
        float score = 0;

        score = i / (i + pow(2, i));
        printf("%f\n", score);
        return 0;
}

输出:

gsamaras@gsamaras-A15:~$ gcc -Wall main.c -lm -o main
gsamaras@gsamaras-A15:~$ ./main 
0.108364

截至,如njuffa所述,您可以使用exp2(float n)

  

计算2提升到给定的功率n。

而不是:

pow(2, i)

使用:

exp2f(i)

答案 1 :(得分:1)

在C表达式

2^i

使用按位XOR运算符^,这不是指数,因此i必须是整数类型的建议。

尝试使用数学函数pow,例如

score = i / (i + pow(2,i));