С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
amfisat
67 / 67 / 1
Регистрация: 16.06.2009
Сообщений: 240
#1

В массиве double обрубаются знаки после запятой - C++

11.03.2011, 19:36. Просмотров 1489. Ответов 3
Метки нет (Все метки)

Всем привет и хорошего настроения! Мой вопрос: почему при выводе простого массива, элементы которого типа double, уменьшается количество знаков после запятой? Как сделать так, чтобы выводилось то же, что и вводится?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
#include<cmath>
using namespace std;
 
int main()
{
    const int n=10;
    double D[n]={1.623250, 1.664792, 1.701977, 1.734832, 1.763404, 1.787764, 1.808002, 1.824230, 1.836580, 1.845201}; 
    
    for (int i=0; i<n; i++)
    {
        cout.precision(6);
        cout<<D[i]<<endl;
    }
 
    return 0;
}
Вывод у меня такой:
C++
1
2
3
4
5
6
7
8
9
10
1,62325
1,66479
1,70198
1,73483
1,7634
1,78776
1,808
1,82423
1,83658
1,8452
Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2011, 19:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В массиве double обрубаются знаки после запятой (C++):

При переводе из double в string теряются знаки после запятой - C++
Перевожу переменную double в string stringstream sst; string f_str; double f=12345.99; sst &lt;&lt; f; f_str=...

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

Табуляция и знаки после запятой - C++
Здравствуйте, помогите пожалуйста. Как сделать так, чтоб программа выводила данные в нормальном виде, То есть одинаковое количество...

знаки после запятой , формат float - C++
я вот что делаю: float i = *(float*)0x0000000; приравниваю значение адреса в формате флоат , мне нужно сделать чтобы переменная...

Переменная float - знаки после запятой - C++
Итак я задаю какую-либо переменную типа float. Потом, с помощью scanf кладу в эту переменную значение 3.2 (к примеру.) Затем, с помощью...

Функция stod отбрасывает знаки после запятой - C++
Добрый день. Подскажите, почему функция stod может отбрасывать все символы после точки? double* OpValue = new double; cout &lt;&lt;...

3
MILAN
886 / 780 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
11.03.2011, 19:42 #2
amfisat,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include<iostream>
#include <cstdlib>
#include<cmath>
#include <iomanip>
using namespace std;
 
int main()
{
        const int n=10;
        double D[n]={1.623250, 1.664792, 1.701977, 1.734832, 1.763404, 1.787764, 1.808002, 1.824230, 1.836580, 1.845201};
 
        for (int i=0; i<n; i++)
        {
                cout<<std::setprecision(8)<<D[i]<<endl;
        }
        system("pause");
        return 0;
}
1
/*Alexander*/
5 / 5 / 0
Регистрация: 29.04.2010
Сообщений: 88
11.03.2011, 19:52 #3
Вроде всё в порядкке. Выводит в округлённом виде.
1
Mr.X
Эксперт С++
3051 / 1696 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
11.03.2011, 21:40 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
///////////////////////////////////////////////////////////////////////////////////////// 
#include<iomanip>
#include<iostream>
///////////////////////////////////////////////////////////////////////////////////////// 
int main()
{
    const int n = 10;
    double D[n] = {    
                      1.623250, 
                      1.664792, 
                      1.701977, 
                      1.734832, 
                      1.763404, 
                      1.787764, 
                      1.808002, 
                      1.824230, 
                      1.836580, 
                      1.845201
                  }; 
 
    for (int  i = 0; i < n; ++i)
    {                
        std::cout << std::fixed
                  << std::setprecision(6)
                  << D[i]
                  << std::endl;
    }
}
1
11.03.2011, 21:40
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2011, 21:40
Привет! Вот еще темы с ответами:

Тип double и количество символов после запятой - C++
Здравствуйте, уважаемые я дико нуб, поэтому помогите чем можете ) суть такова: тип переменной double необходимо сделать так,...

Как вывести double до 2 знаков после запятой? - C++
Нужно вывести число до 2 знаков после запятой. Попробовал так: 1) round(a*100)/100; 2) out.precision(2); out&lt;&lt;a; Мне...

Подсчет знаков после запятой в переменной double - C++
Не получается, так как в double числа хранятся не точно, и на моменте, когда i == 3345333, d == 3345333.0000000004 и программа...

исправьте ошибку!округлить double до 2-х знаков после запятой - C++
округлять,не используя math.h #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; int main () { double i; printf (&quot;i=&quot;); scanf...


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

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

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