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

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

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

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

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

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

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

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

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

Вычисление факториала и вычисление степени числа - Pascal ABC
Нужно проверить правильность сделанной программы если не правильно помогите исправить. Var a,a1,a2,a3,x,c,st,otvet:real; ...

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

6
iama
1250 / 975 / 49
Регистрация: 30.07.2010
Сообщений: 5,297
08.06.2011, 16:36 #2
rus.nick, а что вас смущает? Правильно всё ведь
0
rus.nick
3 / 3 / 0
Регистрация: 10.03.2011
Сообщений: 39
08.06.2011, 16:49  [ТС] #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
0
iama
1250 / 975 / 49
Регистрация: 30.07.2010
Сообщений: 5,297
08.06.2011, 16:52 #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;
        }
0
rus.nick
3 / 3 / 0
Регистрация: 10.03.2011
Сообщений: 39
08.06.2011, 17:03  [ТС] #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
0
iama
1250 / 975 / 49
Регистрация: 30.07.2010
Сообщений: 5,297
08.06.2011, 17:06 #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;
        }
0
rus.nick
3 / 3 / 0
Регистрация: 10.03.2011
Сообщений: 39
08.06.2011, 17:16  [ТС] #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 в выводе
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2011, 17:16
Привет! Вот еще темы с ответами:

вычисление - Pascal
подскажите как в паскале вычислять y=e^((-x^2)/2)*cos(1.5*x) x берётся из промежутка 0&lt;=x&lt;=pi проблема в том-что надо e возвести в...

Вычисление Y(x) и S(x) - C#
Привет! прошу помощи с решением задания. Значение аргумента x изменяется от a до b c шагом H. Для каждого x найдите значение функции...

Вычисление F(G(2) - C++ Builder
Добрый вечер.Помогите,пожалуйста,разобраться с кодом и панелью.Дано F(x) = 3 * ( sin( x ) ^ 2 ) + 0.35 - 38; G(x) = ln( x ) - x +...

Вычисление с-b+a - Assembler
Создать программу, которая позволяет организовать вычисления c-b+a. Предусмотреть проверку переполнения, и вывод на экран сравнение...


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

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

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