从我的代码什么是错的错误:无效的操作数为二进制表达式(“双”和“双师型”)
double _double = pow(((15)^17)/11^1.5,2)/9.8;
一个线路输出,当我尝试编译它,它会返回错误:无效操作数为二进制表达式('double'和'double') 我认为15^17和11^1.5都是双倍的,所以为什么它给了我这个错误?
从我的代码什么是错的错误:无效的操作数为二进制表达式(“双”和“双师型”)
double _double = pow(((15)^17)/11^1.5,2)/9.8;
一个线路输出,当我尝试编译它,它会返回错误:无效操作数为二进制表达式('double'和'double') 我认为15^17和11^1.5都是双倍的,所以为什么它给了我这个错误?
编译器给你一个错误,因为C++中的^
没有做你认为它的工作。它是XOR运算符,不是电力运营商,它仅适用于整型数据类型。例如,15^17
是30
:
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;
我可以这样做吗? double _double = pow(pow(15,17)/ pow(11,1.5),2)/9.8; – QifengSun
@QifengSun是的,事实上,这是正确的方式,因为权力的优先级高于分割。 – dasblinkenlight
double _double = pow(((15)^17)/11^1.5,2)/9.8;
的^
操作是逻辑异或运营商。
要求数字,请使用pow
,就像你一样。
您不能用XOR
(^
)操作两个双打。它只适用于int
,long
,bool
,short
,char
及其变化。没有浮点数据类型。
'^'不是电源,它是逻辑'xor'。问题是'...^1.5'。 – AlexD
你为什么认为这应该起作用? –
为什么你在做pow,然后认为'^'是电力运营商? –