2012-02-01 59 views
1

我正在開發一個android應用程序。進行數學計算。在那裏我有一些像sin,cos,tan這樣的按鈕應該顯示它們各自的三角值,因爲我使用了java.lang.Math類的相應方法,並且工作正常。但是一些測試中,我才知道,以後,它顯示了一些成果如下如何獲得用戶友好的三角函數值?

sin(90)=0.89399........ //I want it to show 1 
cos(90)=-0.44807........ //I want it to show 0 
tan(90)=-1.995200...... //I want it to show Infinity as sin(90)/cos(90)=1/0=Infinity 

像上面的例子還有很多,其表現出這樣的結果。我應該怎麼做才能得到上述結果。請幫幫我。

+3

我想問題是,java.lang.math與rad而不是度數一起使用? – joni 2012-02-01 13:12:18

回答

8

你的問題是,Java使用弧度和not degrees。您必須首先將角度轉換爲rad。

Double rad = degrees /180 * pi; 
3

Javadoc救援:

參數: 一個 - 的角度,在弧度

(重點煤礦)

將您度爲弧度第一。 360度= 2 * pi。

4

首先,三角函數不適用於您正在使用的度數。您必須發送3.1415926/2而不是90.在這種情況下,sin將更接近1,而cos更接近0.

但是數字仍然是浮點數。如果您想圍繞他們使用DecimalFormat類或String.format()方法呈現使用。

0

看看Math.round()

另外,上次我檢查時,只要你用0分開,你就沒有無窮大。除以0是未定義的。

此外,Java使用弧度三角函數,所以一定要使用弧度而不是度數或梯度。