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

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

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

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

11.10.2012, 21:16. Просмотров 1331. Ответов 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++
Вывод непонятного текста C++
C++ Даны четыре вещественных числа от нуля. Проверить: образуют ли данные числа геометрическую прогрессию.
Вывод длинного числа вместо нуля C++
Даны целые числа a1, …, an, каждое из которых отлично от нуля. C++
Вывести на печать все числа до нуля включительно 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
764 / 697 / 126
Регистрация: 27.07.2012
Сообщений: 1,988
Завершенные тесты: 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 Посмотреть сообщение
Это число очень напоминает не инициализированную переменную, или выход за пределы допустимого, или как говорят "мусор"
да нет, как я понимаю, это экспоненциальная запись бесконечно малого числа, то есть нуля. Но почему???
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2012, 22:33     вывод, вместо нуля, непонятного числа
Еще ссылки по теме:

C++ Вместо нуля выводит непонятное число
C++ Определить, равно ли число (двумерного массива) нулю. Если равно, то вместо нуля записываем указанный символ
C++ Записать в файл все числа от нуля до 2^16 в hex-виде
C++ Вводить числа до нуля, из них образовать квадратную матрицу
Вывод одного и того же числа вместо элементов массива C++

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

Или воспользуйтесь поиском по форуму:
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
11.10.2012, 22:33     вывод, вместо нуля, непонятного числа #11
pcacer, поищите про особенности работы с числами с плавающей точкой.
например, почему не рекомендуется сравнивать два таких числа обычным сравнением ==
думаю, все станет понятней
Yandex
Объявления
11.10.2012, 22:33     вывод, вместо нуля, непонятного числа
Ответ Создать тему
Опции темы

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