2016-08-26 3 views
-2

Я работаю в приложении для Android-калькулятора. Мои тригонометрические обратные функции работают правильно в случае радианов. Но в случае степени они не работают должным образом.Тригонометрические обратные функции не работают

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]. Вы бы никогда не сделали toRadians на входе asin/acos/atan, вы бы сделали это на выходе.

+0

Thnaks, но когда я ставил грех (.5), он дает неправильный ответ. I case of Math.round (Math.sin (Math.toRadians (x))); и если я удаляю Math.round, тогда он также дает неправильный ответ, если i out 180 in angle –

+0

Вы помещаете радианы в обычные триггерные функции. Вы не имеете обратных функций. Подумайте о математике: sin (x) = y. Тогда означает asin (y) = x. Y не находится в радианах. –

+0

да, я получил вашу точку #Gabe Sechan, но я прошу простую функцию триггера. Они дают неправильный ответ, когда угол больше 90 или минус. и если я поставлю Math.round, то также я получу неправильный ответ –

Смежные вопросы