Я выполняю домашнюю работу по программированию на Java и нуждаюсь в помощи с объяснением по следующему вопросу: Напишите программу, которая использует Math.sin()
и Math.cos()
чтобы проверить, что значение
sin 2 θ + cos 2 θ приблизительно равно 1 для любого θ, введенного в качестве аргумента командной строки. Просто распечатайте значение. Почему значения не всегда равны 1?
Не сравнивайте числа с плавающей запятой с равенством (==). Лучшим способом проверки равенства в плавающих числах является определение некоторого порога, приближающегося к ZERO, и сравнение разницы между двумя числами с этим порогом
В вашем случае ваш целевой номер равен 1, и результатом может быть, например, 0.999998
double threshold = 0.00001; // 1e-5
double target = 1;
double result = 0.999998;
System.out.println(Math.abs(target - result) < threshold); // prints true