Ответ 1
Это очень, очень близко к нулю. (~ 10 ^ -16)
И alert(Math.sin(Math.PI/2))
возвращает 1
.
Это просто одна из вещей, которую вы должны быть осторожны при работе с арифметикой с плавающей запятой. Ошибки округления всплывают повсюду.
Javascript Math trigonomerial methos возвращает неправильные результаты. Попробуйте
alert(Math.sin(Math.PI));
он не возвращает 0.
Может быть проблема с точностью до десятичного числа javascript. Есть ли какое-либо решение для получения правильных результатов?
Это очень, очень близко к нулю. (~ 10 ^ -16)
И alert(Math.sin(Math.PI/2))
возвращает 1
.
Это просто одна из вещей, которую вы должны быть осторожны при работе с арифметикой с плавающей запятой. Ошибки округления всплывают повсюду.
Ну, я полагаю, что, поскольку Math.PI
не точен, он 3.14
не 3.1415926
. Попробуйте
alert(Math.sin(3.1415926));
Если этого еще недостаточно, вы можете попытаться использовать расширение в серии Тейлора
sin x = x - x^3 / 3! + x^5 / 5! - x^7 / 7! ......