Подтвердить что ты не робот

Javascript Math.cos и Math.sin являются неточными. Есть ли решение?

Javascript Math trigonomerial methos возвращает неправильные результаты. Попробуйте

alert(Math.sin(Math.PI));

он не возвращает 0.

Может быть проблема с точностью до десятичного числа javascript. Есть ли какое-либо решение для получения правильных результатов?

4b9b3361

Ответ 1

Это очень, очень близко к нулю. (~ 10 ^ -16)

И alert(Math.sin(Math.PI/2)) возвращает 1.

Это просто одна из вещей, которую вы должны быть осторожны при работе с арифметикой с плавающей запятой. Ошибки округления всплывают повсюду.

Ответ 2

Ну, я полагаю, что, поскольку Math.PI не точен, он 3.14 не 3.1415926. Попробуйте

alert(Math.sin(3.1415926));

Если этого еще недостаточно, вы можете попытаться использовать расширение в серии Тейлора

sin x = x - x^3 / 3! + x^5 / 5! - x^7 / 7! ......