從我的代碼什麼是錯的錯誤:無效的操作數爲二進制表達式(「雙」和「雙師型」)
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,然後認爲'^'是電力運營商? –