Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.70/10: Рейтинг темы: голосов - 10, средняя оценка - 4.70
pcacer
53 / 52 / 6
Регистрация: 02.04.2012
Сообщений: 119
1

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

11.10.2012, 21:16. Просмотров 1910. Ответов 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 непонятное число, я понимаю, что это тоже минимальное значение и тоже верно, но все-таки хочу понять, почему не ноль
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2012, 21:16
Ответы с готовыми решениями:

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

Вывод непонятного текста
Если я вбиваю эту программу в Dev-C++ #include &lt;iostream&gt; using namespace...

Вывод 858993460 вместо числа
Программа поиска простых множителей,вместо первой цифры выводит 858993460,после...

Вывод одного и того же числа вместо элементов массива
Студия выдает какое-то одинаковое число на всех местах массива,вместо чисел( ...

Вместо нуля выводит непонятное число
Вот пожалуйста кусок кода, считающий неувязку после решения СЛАУ: int...

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

Плюсы в использовании нуля вместо единицы при индексации массива
Сам уже не раз удостоверился в преимуществе использовании нуля при индексации...

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

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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