[英]C# Math.Pow(-2,1.1) > n.def
我剛剛發現,當輸入負數x和十進制y時, Math.Pow()
返回未定義的值作為結果,我猜這是錯誤的。 即使在其他窗口程序中,使用Windows計算器進行計算也可以得出正確的結果。 此外,文檔中未提及這種情況。
目標框架是4。
誰能解釋一下?
結果將是復數,因此您必須使用System.Numerics
命名空間中的Complex
類。
Complex n = new Complex(-2, 0);
Complex result = Complex.Pow(n, 1.1);
如果結果是實數( 整數冪),則可以使用Math.Pow
。
如@JeppeStigNielsen所述,從int
/ double
到Complex
的轉換是隱式的,因此代碼可以縮短為:
Complex result = Complex.Pow(-2, 1.1);
此外,文檔中未提及這種情況
你確定? 從文檔中
參量
x <0,但不是NegativeInfinity; y不是整數,NegativeInfinity或PositiveInfinity。
返回值
N
我不確定您嘗試了哪個操作系統,但在calc.exe(Win7-64bit)中無效,它表示Invalid Input 。
正如烏魯格貝克(Ulugbek) 所述 ,取1.1
的負值冪會產生一個復數。 因為(-2) 1.1 =(-2) 11/10 =(-2) 1/10 11且根數為-2
10
倍會返回復數。
由於Math.Pow
接受並返回double
Math.Pow
值,因此這不符合要求。 您可以使用System.Numerics
Complex
類。
http://www.wolframalpha.com/input/?i=-2^1.1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.