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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
amfisat
 Аватар для amfisat
67 / 67 / 1
Регистрация: 16.06.2009
Сообщений: 235
11.03.2011, 19:36     В массиве double обрубаются знаки после запятой #1
Всем привет и хорошего настроения! Мой вопрос: почему при выводе простого массива, элементы которого типа 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
Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2011, 19:36     В массиве double обрубаются знаки после запятой
Посмотрите здесь:

C++ Переменная float - знаки после запятой
C++ Тип double и количество символов после запятой
знаки после запятой , формат float C++
знаки после запятой C++
C++ При переводе из double в string теряются знаки после запятой
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
11.03.2011, 19:42     В массиве double обрубаются знаки после запятой #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;
}
/*Alexander*/
5 / 5 / 0
Регистрация: 29.04.2010
Сообщений: 88
11.03.2011, 19:52     В массиве double обрубаются знаки после запятой #3
Вроде всё в порядкке. Выводит в округлённом виде.
Mr.X
Эксперт С++
 Аватар для Mr.X
2807 / 1583 / 248
Регистрация: 03.05.2010
Сообщений: 3,687
11.03.2011, 21:40     В массиве double обрубаются знаки после запятой #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;
    }
}
Yandex
Объявления
11.03.2011, 21:40     В массиве double обрубаются знаки после запятой
Ответ Создать тему
Опции темы

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