如果我想为变量分配500 *(1.00013358 ^ 3),我应该使用什么类型

时间:2014-01-25 10:10:25

标签: c++ c

尝试编写一个小程序来计算使用c ++增加因子数。

我正在尝试将增加因子分配给变量以计算某些数字 我总是得到doubleint类型的无效操作数 如果我想将500 * (1.00013358^3)分配给变量,我应该使用什么类型? 这是我试图没有运气的一些例子:

int i=500 * (1.00013358^3);

然后:

float i =500 * (1.00013358^3);

但我总是得到类型为double和int

的无效操作数

3 个答案:

答案 0 :(得分:3)

我认为你的期望是^是某种权力运算符。但它不是,它是按位异或或(XOR),只能应用于整数类型。

您可能需要查看cmath标题中的std::pow

double i = 500 * std::pow(1.00013358, 3);

答案 1 :(得分:3)

由于^不是我想要的幂运算符(它实际上是按位xor运算符),您可能想尝试这样的事情:

double x = 1.00013358;
double i = 500*x*x*x; // i == 500 * std::pow(1.00013358, 3)

答案 2 :(得分:1)

欢迎使用C ++,^用于按位异或。如果你想做电源,请使用pow()floatdouble都适用于您的情况。

float i = 500 * powf(1.00013358, 3);