Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > Математика |
Автор: SP5B 10.11.2014, 01:06 | ||
Я тут прохожу курс "начало Java" здесь на сайте и в разделе ооп столкнулся с одним примером, когда начал смотреть код тщательней ... вообщем к вопросу
Результат 6.123233995736766E-17 1.0 Почему так ? Когда делаю int course =90; работает все правильно. |
Автор: jManiak 10.11.2014, 01:47 | ||
|
Автор: SP5B 10.11.2014, 02:24 | ||
Да это понятно... а вот почему тут 6 :
не понятно. |
Автор: sQu1rr 10.11.2014, 20:32 |
Не 6 а 6 в степени -17 что ~= 0, изучайте детали IEEE 754 или подобные (в java если не ошибаюсь какойто свой стандарт, но это сути не меняет) |
Автор: Mirkes 11.11.2014, 14:39 |
Кстати, замечу, что правильным является первый из приведенных вами ответов, поскольку 6e-17 это почти ноль. А вот когда вы используете целочисленный курс и во втором вычислении результат не правильный поскольку косинус 90 равен нулю! |
Автор: Michael.de 11.11.2014, 16:53 | ||
Mirkes, только что проверил в консоли:
эээ... но как такое возможно? А ответ такой: 90 / 180 = 0, т.к. оба числа int. При перемножении 0 (int) и Math.PI (double) получится .0 (теперь уже double). |
Автор: SP5B 11.11.2014, 17:45 |
sQu1rr, Спасибо, все верно подметил .. это ближе к 0; Michael.de, Огромное спасибо за разъяснение. Теперь все понятно . Как я понял результаты cos ,sin и т.д выводятся в радианах поэтому .../ 180 * Math.PI |