Math.Tan не работает - PullRequest
       2

Math.Tan не работает

1 голос
/ 27 декабря 2011

В настоящее время я пишу программу расчета для Windows Phone.Один из расчетов, если для нахождения тангенса числа, введенного пользователем, умножается на другое число, введенное пользователем.

Проблема в том, что когда я набрал 1 * tan (45) (то есть 1), он возвращает 1.6.... Я пару раз пробежал через отладчик.Я вижу, что 45 входит в Math.Tan, и вывод составляет 1.6.

Пожалуйста, помогите мне определить причину этой проблемы.Код ниже.

double result;
double multiplying = Convert.ToDouble(txtMultTan.Text);
double tangent = Convert.ToDouble(txtTan.Text);
result = multiplying * (Math.Tan(tangent));
txtResult.Text = "Answer= " + result;

Ответы [ 6 ]

7 голосов
/ 27 декабря 2011

Я уверен, что если вы прочитаете документацию, вы обнаружите, что функции триггера ожидают, что ввод будет в радианах.Чтобы преобразовать градусы в радианы, умножьте на pi/180.0, используя любую предопределенную константу pi, которую предлагает ваша математическая библиотека.

1 голос
/ 27 декабря 2011

Аргумент к Math.Tan ожидается в радианах.Умножается на Math.PI/180.0.Например:

    const double DTR = Math.PI / 180.0;
    double angle = 45;
    Console.WriteLine(Math.Tan(angle * DTR)); // Prints 1
1 голос
/ 27 декабря 2011

Причиной проблемы является то, что аргумент Math.Tan должен быть в радианах, а вы, похоже, задаете ему значение в градусах.Умножьте значение на pi / 180, и вы получите ожидаемый результат.

См. Статью в Википедии о радианах для получения дополнительной информации.

0 голосов
/ 01 августа 2012

Так трудно найти!

Чтобы выполнить базовую треугольную математику в JavaScript, используйте ..

Math.atan(opposite/adjacent) * 180/Math.PI
0 голосов
/ 27 декабря 2011

На самом деле, когда я запускаю Tan (45) на Google, результат на самом деле равен 1.6. Ссылка

0 голосов
/ 27 декабря 2011

Это в радианах.

Это относится и к "нормальному" .NET - попробуйте.

Console.WriteLine(Math.Tan(45));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...