Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Aliru
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 83
#1

Арифметическая ошибка в цикле - C++

29.05.2013, 01:03. Просмотров 253. Ответов 3
Метки нет (Все метки)

C++
1
2
3
4
5
6
for (double i = .01; i <= 1; i+=.01)
{
sum += i;
cout<<i<<endl;
}
cout << "The sum is " << sum;
и результат 49.5, а не 50.5
Но такой код
C++
1
2
3
4
5
6
for (double i = .01; i <= .1; i+=.01)
{
sum += i;
cout<<i<<endl;
}
cout << "The sum is " << sum;
дает значение 0.55
Подскажите пожалуйста в чем причина?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2013, 01:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Арифметическая ошибка в цикле (C++):

Ошибка в цикле - C++
Здравствуйте. Нужно вычислить факториал неотрицательного числа. К примеру: n! = n * (n - 1) * (n - 2) * ... (для значений n &gt; 1) ...

Ошибка в цикле - C++
Задание: Написать цикл программы. от К=1 до К=10 #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int main () ...

Ошибка в цикле - C++
Помогите найти ошибку в цикле, пожалуйста #include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; #include &lt;windows.h&gt; ...

Ошибка в цикле - C++
Суть программы: создаёт динамический список, каждый новый элемент списка заносится в конец. Ну, там далее ещё функций по мелочи, но не...

Ошибка в цикле - C++
(Задание - см. вложение) Почему функция fill_array() возвращает неправильные значения? Когда ввожу 1 или 2 числа, выводит цифру 1;...

Ошибка в цикле while - C++
Привет всем! Ниже приведен код программы, в программе две функции одна change() переводит Ф.И.О в формат фамилия - инициалы, а вторая...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
29.05.2013, 01:17 #2
Счетчик double - не самая лучшая идея

C++
1
2
3
4
5
6
for (int i = 1; i <= 100; i+=1)
{
sum += i/100;
cout<<i<<endl;
}
cout << "The sum is " << sum;
0
Aliru
0 / 0 / 0
Регистрация: 07.05.2013
Сообщений: 83
29.05.2013, 13:17  [ТС] #3
sum: 0.010000, i: 0.0100000000000000
sum: 0.030000, i: 0.0200000000000000
sum: 0.060000, i: 0.0300000000000000
sum: 0.100000, i: 0.0400000000000000
sum: 0.150000, i: 0.0500000000000000
sum: 0.210000, i: 0.0600000000000000
sum: 0.280000, i: 0.0700000000000000
sum: 0.360000, i: 0.0800000000000000
sum: 0.450000, i: 0.0900000000000000
sum: 0.550000, i: 0.1000000000000000
sum: 0.660000, i: 0.1100000000000000
sum: 0.780000, i: 0.1200000000000000
sum: 0.910000, i: 0.1300000000000000
sum: 1.050000, i: 0.1400000000000000
sum: 1.200000, i: 0.1500000000000000
sum: 1.360000, i: 0.1600000000000000
sum: 1.530000, i: 0.1700000000000000
sum: 1.710000, i: 0.1800000000000000
sum: 1.900000, i: 0.1900000000000000
sum: 2.100000, i: 0.2000000000000000
sum: 2.310000, i: 0.2100000000000001
sum: 2.530000, i: 0.2200000000000001
sum: 2.760000, i: 0.2300000000000001
sum: 3.000000, i: 0.2400000000000001
sum: 3.250000, i: 0.2500000000000001
sum: 3.510000, i: 0.2600000000000001
sum: 3.780000, i: 0.2700000000000001
sum: 4.060000, i: 0.2800000000000001
sum: 4.350000, i: 0.2900000000000001
sum: 4.650000, i: 0.3000000000000001
sum: 4.960000, i: 0.3100000000000001
sum: 5.280000, i: 0.3200000000000001
sum: 5.610000, i: 0.3300000000000001
sum: 5.950000, i: 0.3400000000000001
sum: 6.300000, i: 0.3500000000000001
sum: 6.660000, i: 0.3600000000000002
sum: 7.030000, i: 0.3700000000000002
sum: 7.410000, i: 0.3800000000000002

Откуда эти квадритрили...онные берутся?
Причина? Я уверен есть какое-то объяснение.
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
29.05.2013, 13:22 #4
Цитата Сообщение от Aliru Посмотреть сообщение
Откуда эти квадритрили...онные берутся?
Причина? Я уверен есть какое-то объяснение.
Ознакомьтесь с IEEE 754.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2013, 13:22
Привет! Вот еще темы с ответами:

Ошибка в цикле - C++
Хочу создать массив из 10 чисел. void main() { char a,i; for (i=0; i&lt;10; i++) { printf (&quot;Enter...

Ошибка в цикле - C++
Суть задачи: Разработать программу для приближенного вычисления величины y=Ʃ(1/((2*n+1)*(2*n-1))) , n=1,2,3,... Процесс вычисления...

Ошибка в цикле while - C++
//--------------------------------------------------------------------------- #pragma hdrstop #include &lt;locale&gt; #include &lt;stdio.h&gt; ...

Ошибка в цикле с очередью - C++
Добрый день! Придумал глупый, но рабочий цикл проверки элементов очереди queue Моя очередь содержит числа с плавающей запятой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.05.2013, 13:22
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru