Math.cos () дает неверный результат

По словам Вольфрама Математика:cos (50) =0,6427876096865394;

Но этот код в Java:

    System.out.println(Math.cos(50));

дает0,9649660284921133.

Что не так с ?java.lang.Math

Ответы на вопрос(4)

Math.cos() использованиярадиантак что для получения ожидаемого результата нужно сделать

Для меня...

System.out.println(Math.cos(50));
System.out.println(Math.cos(new Double(50)));
System.out.println(Math.cos(Math.toRadians(50)));
System.out.println(Math.cos(Math.toRadians(new Double(50))));

возвращается

0,9649660284921133

0,9649660284921133

0,6427876096865394

0,6427876096865394





http://www.wolframalpha.com/input/?i=cos%2850deg%29

cos(50deg) дать тот же результат, что иcos(50)... так что Wolfram - это степень по умолчанию.

 bestsss25 окт. 2012 г., 19:17
new Double(50) у серверов вообще нет цели.
 Manu22 окт. 2012 г., 09:22
Я согласен с тобой ... Я ошибочно излагаю метод, который ожидает радиан. Как я уже сказал, я согласен с людьми, которые дают -1 И дают информацию об этом: я ожидаю, что не так легко дать -1. Так что спасибо за объяснение, @ phant0m. Я исправлю свой ответ так.
 phant0m20 окт. 2012 г., 20:10
мой-1 было в основном из-за этого:I don't know exactly what the meaning of these results but for me...кроме того, что не является правильным ответом на вопрос. Учитывая ваш код, вы, кажется, пытаетесь угадать, что происходит, вместо того, чтобы понимать это. Это дополнительно демонстрируется этим:Math.cos(Math.toDegrees(50))  Вы передаете функцию, которая ожидает радианы, значение, которое вы получаете после преобразования 50 радиан в градусы, значение, которое является совершенно случайным.
 phant0m20 окт. 2012 г., 20:03
Wolfram Alpha пытается угадать, введены ли ваши значения в радианах или градусах: если значение меньше 5, кажется, что оно интерпретируется как радианы, если оно 'Если оно больше или равно 5, оно интерпретируется как градусы;) Я позволил себе исправить вывод, который Java фактически выдает при выполнении этого кода.
 Manu22 окт. 2012 г., 09:25
Должен ли я задать другой вопрос и установить связь между моим и этим вопросом, если я попытаюсь / хочу понять, почему этот метод возвращает разные результаты?
 phant0m19 окт. 2012 г., 21:36
Wolfram Alpha не использует градусы по умолчанию! Скорее, он пытается быть умным.
 Manu20 окт. 2012 г., 18:13
Что такое Wolfram Alpha по умолчанию, градус или радиан или ...? Есть ли другая база? Можете ли вы дать больше аргументов о том, что вы пишете? Ваш комментарий не дает никакой информации на самом деле! Мой ответ не отвечает на первоначальный вопрос, так что хорошо для "-1" флаг, но он дает больше информации, полезной об этом разговоре, я думаю.
Решение Вопроса

Math.cos() ожидает, что параметр будет в радианах. Это вернет нужный вам результат:

 Steven M. Vascellaro27 апр. 2017 г., 03:21
Есть ли в Java версия Math.cos (), которая работает с градусами, или нам постоянно нужно помнить, чтобы вручную конвертировать градусы в радианы?
 Ignacio Contreras Pinilla19 окт. 2012 г., 16:04
+1. Просто для справки, как ОП говорил о вольфрамеwolframalpha.com/input/?i=cos%2850rad%29

что параметры будут в радианах. Вы можете использовать Math.toRadians () для конвертации:

System.out.println(Math.cos(Math.toRadians(50)));

Ваш ответ на вопрос