• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Типы данных

  • Автор темы Cadet
  • Дата начала
Статус
Закрыто для дальнейших ответов.
C

Cadet

Объясните пожалуйста, почему так, и как этого избежать!


Код:
for (double i=0; i<0.8; i+=0.2)
System.out.println(i);
При выводе результатов этого цикла получаю следующее:

0.0
0.2
0.4
0.6000000000000001

Непонятен результат последнего выполнения цикла.
 
V

vital

Кадет, чему вас учили на предмете "Микропроцессорная техника". Ну или как-нибудь так. Почитайте где-либо про округление! Не зачет кадет.
 
H

hosm

накапливающаяся ошибка при вычислениях с плавающей точкой. Эти вычисления НЕ точные.
точность указывается для каждого типа данных.
форматируйте при выводе или округляйте, пользуйтесь умножением вместо n сложений (меньше накапливается ошибка) - смотря что Вам надо...

Добавлено: вот тут почти всё сказано:
https://codeby.net/threads/31867.html?vi...st&p=147829
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!