2015-10-13 69 views
0

从我的代码什么是错的错误:无效的操作数为二进制表达式(“双”和“双师型”)

double _double = pow(((15)^17)/11^1.5,2)/9.8; 

一个线路输出,当我尝试编译它,它会返回错误:无效操作数为二进制表达式('double'和'double') 我认为15^17和11^1.5都是双倍的,所以为什么它给了我这个错误?

+6

'^'不是电源,它是逻辑'xor'。问题是'...^1.5'。 – AlexD

+2

你为什么认为这应该起作用? –

+3

为什么你在做pow,然后认为'^'是电力运营商? –

回答

0

编译器给你一个错误,因为C++中的^没有做你认为它的工作。它是XOR运算符,不是电力运营商,它仅适用于整型数据类型。例如,15^1730

01111 // 15 
XOR 10001 // 17 
--------- 
    11110 // 30 

事实上,C++完全缺乏功率操作。您应该使用std::pow(double,double)代替:

double _double = pow(pow(15, 17)/pow(11, 1.5), 2)/9.8; 
+0

我可以这样做吗? double _double = pow(pow(15,17)/ pow(11,1.5),2)/9.8; – QifengSun

+0

@QifengSun是的,事实上,这是正确的方式,因为权力的优先级高于分割。 – dasblinkenlight

0
double _double = pow(((15)^17)/11^1.5,2)/9.8; 

^操作是逻辑异或运营商。

要求数字,请使用pow,就像你一样。

1

您不能用XOR^)操作两个双打。它只适用于int,long,bool,short,char及其变化。没有浮点数据类型。

相关问题