2017-01-08 73 views
-3

爲什麼java.png中的Math.pow API有雙重參數,雙重寫法的基本原理或用法是什麼?爲什麼java Math.pow參數加倍?

作爲計算浮點數和雙重涉及精度,四捨五入錯誤等..涉及爲什麼不沒有單獨的API來計算整數?

爲什麼沒有單獨的方法

+0

看看http://stackoverflow.com/questions/8071363/calculating-powers-in-java,它可能會回答你的兩個問題。 –

+2

功率計算的結果通常是無法合理的數字,只能近似計算,double使用快速緊湊算法提供最接近的近似值。 –

+0

[爲什麼Math.pow(x,y)計算爲Double?](https://stackoverflow.com/questions/23326902/why-does-math-powx-y-count-as-a-雙) –

回答

1

戰俘的結果常常是非理性的,分數或過大,以存儲爲long,如果你想使用整數的權力,你可以使用

BigInteger bi = BigInteger.valueOf(100); 
BigInteger bi2 = bi.pow(20); // 10^40 

另一個原因可能是Math具有很多從C中取得的功能,還有一些常見的CPU指令集。 C只有浮點方法,而x64只有浮點版本的pow。

+1

什麼時候是一個整數到另一個整數的冪有史以來是非理性的? *分數*結果(即,對於負指數)*是一個問題,但是。 – dan04

相關問題