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

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

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

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

08.06.2011, 16:35. Просмотров 357. Ответов 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
...
и так далее, в чем проблема откуда эта погрешность, код то элементарен...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2011, 16:35     Вычисление VS C++
Посмотрите здесь:

Возведение в степень по модулю, вычисление НОД, вычисление инверсии - Криптография
Доброго времени суток. Для реализации RSA нужны 3 функции &quot; возведение в степень по модулю (а^x mod p) Вычисление наибольшего общего...

Вычисление периметра(вычисление расстояния между вершинами реализовать в виде функции) - Pascal ABC
даны координаты вершин многоугольника (X1,Y1), (X2,Y2),...(Xn,Yn). Напишите программу для вычисления его периметра( вычисление расстояния...

Вычисление непрерывных дробей и выражений. Вычисление полиномов и их производных. - C++
1. Чему равна знакочередующаяся сумма цифр числа n. 2. Даны натуральное число n и вещественное число х. Составить программу для...

Вычисление функции отключено, поскольку истекло время, выделенное на вычисление предыдущей функции - C#
Подскажите пожалуйста, загружаю файл на ftp: WebClient myWebClient = new WebClient(); Uri ftp_path = new...

Вычисление степени матрицы, вычисления произведения двух матриц, вычисление суммы двух матриц - C++
Здравствуйте, помогите решить, пожалуйста: Заданы две квадратные матрицы А и В. Вычислить матрицу...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
iama
1249 / 974 / 49
Регистрация: 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 / 49
Регистрация: 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 / 49
Регистрация: 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;
        }
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++
Ответ Создать тему
Опции темы

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