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

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

Войти
Регистрация
Восстановить пароль
 
rus.nick
3 / 3 / 0
Регистрация: 10.03.2011
Сообщений: 39
#1

Вычисление VS C++ - C++

08.06.2011, 16:35. Просмотров 348. Ответов 6
Метки нет (Все метки)

Честно говоря задача детская, но вот то что получается вводит меня в ступор, вот код:

Код
	float x = (float) -0.5;

	while (x <= 0.5)
	{
		cout << x << endl;
		x = x + (float)0.1;
	}
Вывод таков:

Код
-0.5
-0.4
-0.3
-0.2
-0.1
-1.49012e-008
0.1
0.2
0.3
0.4
0.5
Лезу в отладчик и вижу что при вычислении получаются странные значения:
x -0.40000001 float
x -0.30000001 float
x -0.20000002 float
x -0.10000002 float
x -1.4901161e-008 float
x 0.099999987 float
...
и так далее, в чем проблема откуда эта погрешность, код то элементарен...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
iama
1249 / 974 / 48
Регистрация: 30.07.2010
Сообщений: 5,297
08.06.2011, 16:36     Вычисление VS C++ #2
rus.nick, а что вас смущает? Правильно всё ведь
rus.nick
3 / 3 / 0
Регистрация: 10.03.2011
Сообщений: 39
08.06.2011, 16:49  [ТС]     Вычисление VS C++ #3
Цитата Сообщение от iama Посмотреть сообщение
rus.nick, а что вас смущает? Правильно всё ведь
Хотелось бы получить:
-0.5
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
0.5
iama
1249 / 974 / 48
Регистрация: 30.07.2010
Сообщений: 5,297
08.06.2011, 16:52     Вычисление VS C++ #4
C++ : Reference : IOstream Library : manipulators : setprecision
C++
1
2
3
4
5
6
7
        float x = -0.5;
 
        while (x <= 0.5)
        {
                cout << setprecision (5) << x << endl;
                x = x + 0.1;
        }
rus.nick
3 / 3 / 0
Регистрация: 10.03.2011
Сообщений: 39
08.06.2011, 17:03  [ТС]     Вычисление VS C++ #5
Цитата Сообщение от iama Посмотреть сообщение
C++ : Reference : IOstream Library : manipulators : setprecision
C++
1
2
3
4
5
6
7
        float x = -0.5;
 
        while (x <= 0.5)
        {
                cout << setprecision (5) << x << endl;
                x = x + 0.1;
        }
Пробовал ни как не повлияло, писал так
C++
1
2
 
printf(" %6.3f \n", x);
выдает вместо 0 значение -0
iama
1249 / 974 / 48
Регистрация: 30.07.2010
Сообщений: 5,297
08.06.2011, 17:06     Вычисление VS C++ #6
rus.nick, вай, забыл
C++
1
2
3
4
5
6
7
        float x = -0.5;
 
        while (x <= 0.5)
        {
                cout << fixed << setprecision (1) << x << endl;
                x = x + 0.1;
        }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2011, 17:16     Вычисление VS C++
Еще ссылки по теме:

Вычисление произведения C++
C++ вычисление функции
C++ Вычисление n!!
C++ Вычисление факториала

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

Или воспользуйтесь поиском по форуму:
rus.nick
3 / 3 / 0
Регистрация: 10.03.2011
Сообщений: 39
08.06.2011, 17:16  [ТС]     Вычисление VS C++ #7
Цитата Сообщение от iama Посмотреть сообщение
rus.nick, вай, забыл
C++
1
2
3
4
5
6
7
        float x = -0.5;
 
        while (x <= 0.5)
        {
                cout << fixed << setprecision (1) << x << endl;
                x = x + 0.1;
        }
Все работает, тока смущает -0.0 в выводе
Yandex
Объявления
08.06.2011, 17:16     Вычисление VS C++
Ответ Создать тему
Опции темы

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