簡體   English   中英

System.out.print(Math.pow(9,1/3)); 結果= 1.0; 為什么?

[英]System.out.print(Math.pow( 9 , 1/3)) ; Result = 1.0 ; Why?

我是JAVA的新手,正在嘗試學習該語言。 如果我很傻,請原諒。

因此,我測試了Math.Pow(),發現當我在第二個參數中使用除法函數時,無論我在兩個參數中輸入什么值,我的結果始終為“ 1.0”。 救命?

public static void main(String[] args) {

    double a= 27 , b = 1/3 ;
    System.out.println(Math.pow(a,b));
}

運行:1.0 BUILD SUCCESSFUL(總時間:0秒)

1/3為零。 對於所有a != 0 ,尤其是對於a = 27 Math.pow(a,0)均為1

在將整數轉換為double之前,使用整數除法在兩個整數之間執行1/3除法。 通過確保該數字是使用雙除法完成的,例如1.0/3 ,可以獲得所需的結果。

1/3是整數除法,在將其設置為b之前,它將首先作為整數取0。 那將使b = 0,因此Math.pow(27,0)= 1。

將其更改為1.0 / 3.0,然后變為0.3333。 這就是你想要的。

暫無
暫無

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

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