2016-08-26 3 views
-2

私はアンドロイド電卓のアプリで働いています。私の三角関数は、ラジアンの場合正しく機能しています。しかし度の場合、彼らは正しく働いていません。間違っている三角関数が働いていない

if (func.equals("sin")) x = Math.sin(Math.toRadians(x)); 
else if (func.equals("cos")) x = Math.cos(Math.toRadians(x)); 
else if (func.equals("tan")) x = Math.tan(Math.toRadians(x)); 
else if (func.equals("asin")) x = Math.asin(Math.toRadians(x)); 
else if (func.equals("acos")) x = Math.acos(Math.toRadians(x)); 
else if (func.equals("atan")) x = Math.atan(Math.toRadians(x)); 

私はその後、sin(.5)=0.0それらを丸める場合は、?

+1

[最小テストケース](http://stackoverflow.com/help/mcve)を作成してください。 –

+0

xはどのタイプですか?はい、実際にコンパイルして問題を見るのに十分なコードを教えてください – Zach

+0

彼のコードは彼の質問には十分です。あなたはプログラミングにはあまりにも多くのことを考えており、数学では十分ではありません。 –

答えて

0

逆三角関数はラジアンをとらない。彼らは価値を取る。 asinとacosは[-1、1]、atan [-inf、inf]の値をとります。 asin/acos/atanの入力でtoRadiansを実行することは決してありません。あなたは出力上でそれを行います。

+0

Thnaksしかし、私がsin(.5)を置くと、Math.round(Math.sin(Math.toRadians(x)))の間違った答えが返されます。そしてもし私がMath.roundを取り除くならば、角度が180度ずれていると間違った答えを返します –

+0

ラジアンを通常の三角関数に置きます。逆関数はありません。数学について考えてみましょう:sin(x)= y。それはasin(y)= xを意味します。 Yはラジアンではありません。 –

+0

はい私はあなたのポイント#Gabe Sechanを得たが、私は単純な三角関数を求めている。 90度以上の角度では、間違った答えが返ってくる。もし私が数学を入れたら、また私は間違った答えを得る –

関連する問題