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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
pcacer
52 / 52 / 6
Регистрация: 02.04.2012
Сообщений: 119
#1

вывод, вместо нуля, непонятного числа - C++

11.10.2012, 21:16. Просмотров 1430. Ответов 10
Метки нет (Все метки)

вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <math.h>
 
using namespace std;
 
int main()
{
    cout <<"x" << ";" << "ch(x)" << endl;
 
    for (double x = -1; x < 1; x += 0.1)
    {
        cout << x << ";" << cosh(x) << endl;
    }
 
    return 0;
}
Подскажите,программа выводит вместо 0 непонятное число, я понимаю, что это тоже минимальное значение и тоже верно, но все-таки хочу понять, почему не ноль
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2012, 21:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос вывод, вместо нуля, непонятного числа (C++):

Вывод длинного числа вместо нуля - C++
предполагаю что проблема мелкая, но либо меня гугл забанил, либо ввожу в поиск не то.. перейдем к делу, 1) программа создает...

Вывод непонятного текста - C++
Если я вбиваю эту программу в Dev-C++ #include &lt;iostream&gt; using namespace std; int main(){ setlocale(LC_ALL,&quot;Russian&quot;); char Fi; ...

Вывод 858993460 вместо числа - C++
Программа поиска простых множителей,вместо первой цифры выводит 858993460,после выводит остальные числа нормально. Например, для n=3960...

Вывод одного и того же числа вместо элементов массива - C++
Студия выдает какое-то одинаковое число на всех местах массива,вместо чисел( #include &quot;CArrayDelete.h&quot; #include &lt;stdlib.h&gt; ...

Вместо нуля выводит непонятное число - C++
Вот пожалуйста кусок кода, считающий неувязку после решения СЛАУ: int n=5; double **a, *b, *x, r, c, s, q; int i,...

Даны четыре вещественных числа от нуля. Проверить: образуют ли данные числа геометрическую прогрессию. - C++
Даны четыре вещественных числа от нуля. Проверить: образуют ли данные числа геометрическую прогрессию.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
11.10.2012, 21:29 #2
Что для вас непонятное число? cosh(1) ? Так он равен именно тому что он выдает, и значение вроде в радианах подается на параметр
pcacer
52 / 52 / 6
Регистрация: 02.04.2012
Сообщений: 119
11.10.2012, 21:49  [ТС] #3
Цитата Сообщение от Vidok Посмотреть сообщение
Что для вас непонятное число? cosh(1) ? Так он равен именно тому что он выдает, и значение вроде в радианах подается на параметр
так у меня в цикле выводятся x, почему все значения до и после нуля выводятся норм, а именно где 0 должен стоять выводится -1.38778e-016?
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
11.10.2012, 21:50 #4
Аа, так бы сразу сказали, интересно, посмотрим
John Prick
777 / 710 / 131
Регистрация: 27.07.2012
Сообщений: 2,041
Завершенные тесты: 3
11.10.2012, 22:05 #5
А вы посмотрите в отладке: поставьте точку останова на выводе. х там редко точно равен -0.9 -0.8 и т.д. Накапливатеся некоторая ошибка, которая к нулю и становится равной тому числу, которое видите на экране. Как-то тоже сталкивался с подобным, не помню уже с чем это было связано, к сожалению.
Практичнее выводить не просто число, а его округлённое значение (до 0.001, например). Вроде была такая функция где-то.
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
11.10.2012, 22:12 #6
Да я тоже что то такое помнил, есть функция вывода с точностью до определенного количества знаков, это зависит от типа double, сказать сложно сейчас что, забыл. А если float взять так еще и второе такое вылазит
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
11.10.2012, 22:22 #7
если после х поставить точку и цифру 2 будет выводится вроде 2 цыфры после запятой
pcacer
52 / 52 / 6
Регистрация: 02.04.2012
Сообщений: 119
11.10.2012, 22:26  [ТС] #8
Цитата Сообщение от MrGrig Посмотреть сообщение
если после х поставить точку и цифру 2 будет выводится вроде 2 цыфры после запятой
но как мне это поможет?
Я хочу понять что за -1.38778e-016 вместо нуля
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
11.10.2012, 22:28 #9
Это число очень напоминает не инициализированную переменную, или выход за пределы допустимого, или как говорят "мусор"
pcacer
52 / 52 / 6
Регистрация: 02.04.2012
Сообщений: 119
11.10.2012, 22:30  [ТС] #10
Цитата Сообщение от Vidok Посмотреть сообщение
Это число очень напоминает не инициализированную переменную, или выход за пределы допустимого, или как говорят "мусор"
да нет, как я понимаю, это экспоненциальная запись бесконечно малого числа, то есть нуля. Но почему???
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
11.10.2012, 22:33 #11
pcacer, поищите про особенности работы с числами с плавающей точкой.
например, почему не рекомендуется сравнивать два таких числа обычным сравнением ==
думаю, все станет понятней
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2012, 22:33
Привет! Вот еще темы с ответами:

Определить, равно ли число (двумерного массива) нулю. Если равно, то вместо нуля записываем указанный символ - C++
Вот что нужно написать кодом: сравнить, равно ли число (двумерного массива) нулю. Если равно, то вместо нуля записываем, например,...

Вывести на печать все числа до нуля включительно - C++
Дана последовательность чисел, среди которых имеется 1 нуль. Вывести на печать все числа до нуля включительно.

Вывести на печать все числа до нуля включительно - C++
Одномерный массив. Дана задача: Дана последовательность чисел (рандомно), среди которых имеется один нуль (рандомно). Вывести на печать...

Ввод чисел, при вводе нуля - вывод количества цифр, идущих по порядку - C++
Задача: пользователь вводит числа, при вводе нуля необходимо вывести кол-во чисел, которые шли по порядку(например: 2867524560 --&gt;...


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

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

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