2012-02-01 61 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使用弧度三角函数,所以一定要使用弧度而不是度数或梯度。