Типы данных

  • Автор темы Автор темы 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

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

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

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