Я столкнулся с проблемой точности с плавающей запятой, кто-нибудь знает, почему это происходит? Почему это влияет на функцию косинуса, но не на функцию синуса.Ошибка точности с плавающей точкой JavaScript
Math.sin(90 * Math.PI/180);
// returned: 1, expected: 1
1 - Math.sin(90 * Math.PI/180);
// returned: 0, expected: 0
Math.cos(90 * Math.PI/180);
// returned: 6.123233995736766e-17, expected: 0
1 - Math.cos(90 * Math.PI/180);
// returned: 0.9999999999999999, expected: 1
Это обычная проблема со всеми языками, но в основном потому, что использование математики с плавающей запятой приводит к ошибкам округления. Лучше всего только округлить его, к сожалению ... –
Но почему это просто косинус, на который влияет, а не функция синуса? (обновил мой вопрос, чтобы отразить этот комментарий). – thephpdev
0.9 периодический == 1 –