質問

Dresultの出力が無効なのはなぜですか?
env:Visual Studio 2008

int _tmain(int argc, _TCHAR* argv[])  
{  
   double dN = - 0.091023604111478473 ;  
   double dD = 0.127777777777777;  
   double dResult =  pow( dN,dD );   
   //dResult = -1.#IND000000000000  
   return 0;  
}   
役に立ちましたか?

解決

見る http://www.cplusplus.com/reference/clibrary/cmath/pow/

double pow (double base, double exponent );

「ベースが負で、指数が積分値ではない場合、またはベースがゼロであり、指数が負の場合、ドメインエラーが発生し、グローバル変数ERRNOを値EDOMに設定します。」

他のヒント

提示した分数の代わりにDD値が.25であった場合、負の数の指数ではなく4番目のルートを実際に取得していることがわかります。あなたの割合は8番目の根に近いです。関数が与えるべき答えを表現するには、複雑な数字が必要です。

DNは陰性であるため、それは期待される結果です。 POW(DN、DD)の結果;いずれかのDNが陽性である場合、またはDDが整数である場合にのみ定義されます。それ以外の場合、結果は複雑な数です。たとえば、POW(-1。、0.5)も機能しません。

さて、0.127777777は何の数字ですか?そのsmtのような1277777777/(10 .... 0)

1277777777777は偶数ではないため、-12777777777の電力への-SMTは負の数であり、10番目のルートは実数ではありません。

私は^(b/c)=(c-root from)(a^b)という事実に深みを帯びています

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top