簡體   English   中英

負數的立方根

[英]Cube root of a negative number

我試圖找到一個負數的立方根,但我得到一個NaN。 有幫助嗎?

System.out.println(Math.pow(-8, 1.0 / 3.0));

Math.pow的Java文檔說明:

如果第一個參數是有限的並且小於零[...] [和]如果第二個參數是有限的而不是整數,則結果是NaN。

您可以使用Math.cbrt獲取多維數據集根目錄:

double result = Math.cbrt(-8.0);

請記住,在數學上,有3個立方根。 假設你想要真正的根,你應該這樣做:

x = 8;  //  Your value

if (x > 0)
    System.out.println(Math.pow(x, 1.0 / 3.0));
else
    System.out.println(-Math.pow(-x, 1.0 / 3.0));

編輯:正如其他答案所提到的,有Math.cbrt(x) (我不知道存在)

pow返回具有負基和非積分功率的NaN的原因在於,通常通過復平面中的角度大小來完成供電。

  • 對於正實數,角度為零,因此答案仍然是正的和真實的。
  • 對於負實數,角度為180度,(在乘以非整數冪之后)將始終產生復數 - 因此為NaN

來自http://docs.oracle.com/javase/6/docs/api/java/lang/Math.html

如果第一個參數是有限的且小於零

  • 如果第二個參數是有限偶數,則結果等於將第一個參數的絕對值提高到第二個參數的冪的結果
  • 如果第二個參數是有限的奇數,則結果等於將第一個參數的絕對值提高到第二個參數的冪的結果的負數
  • 如果第二個參數是有限的而不是整數,則結果為NaN。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM