public static double sin(double 180) {
//напишите тут ваш код
return Math.sin(Math.toRadians(a));
}
НЕ могу понять почему вывод:
1.2246467991473532E-16
Сначала 180 передается в параметр
Math.toRadians(180)
и он становится равен 3.14, и потом этот параметр передается дальше
Math.sin(3.14)
и вывод таков:
0.00159.
Что не так я понял?
Abakar
37 уровень
Объясните почему так?
Обсуждается
Комментарии (2)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
PixtaExpert
23 апреля 2022, 03:09
У вас все верно выводится.
toRadians(180) = Pi 3,14......
Sin (Pi) = 0
Но так как у нас имеется ограничение в точности числа, т.е. double хранит только 8 байт. У нас получится округление.
в нашем случае Pi = 3.14159265358979323846
Sin от данного числа получился 1.22 *10^-16, т.е. 0,00000000000000122
+1
Anonymous #3346123
9 января 2024, 20:11
А если так , (для ясности) :
Sin (Pi) = 0 всегда и везде.
Наш double хранит только только часть бесконечного числа Пи. Отсюда погрешность.
0