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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
pcacer
52 / 52 / 6
Регистрация: 02.04.2012
Сообщений: 119
11.10.2012, 21:16     вывод, вместо нуля, непонятного числа #1
вот код
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 непонятное число, я понимаю, что это тоже минимальное значение и тоже верно, но все-таки хочу понять, почему не ноль
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vidok
 Аватар для Vidok
36 / 36 / 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
 Аватар для Vidok
36 / 36 / 2
Регистрация: 03.09.2011
Сообщений: 279
11.10.2012, 21:50     вывод, вместо нуля, непонятного числа #4
Аа, так бы сразу сказали, интересно, посмотрим
John Prick
754 / 687 / 123
Регистрация: 27.07.2012
Сообщений: 1,974
Завершенные тесты: 3
11.10.2012, 22:05     вывод, вместо нуля, непонятного числа #5
А вы посмотрите в отладке: поставьте точку останова на выводе. х там редко точно равен -0.9 -0.8 и т.д. Накапливатеся некоторая ошибка, которая к нулю и становится равной тому числу, которое видите на экране. Как-то тоже сталкивался с подобным, не помню уже с чем это было связано, к сожалению.
Практичнее выводить не просто число, а его округлённое значение (до 0.001, например). Вроде была такая функция где-то.
Vidok
 Аватар для Vidok
36 / 36 / 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
 Аватар для Vidok
36 / 36 / 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++ Определить, равно ли число (двумерного массива) нулю. Если равно, то вместо нуля записываем указанный символ

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

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

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