Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.51/368: Рейтинг темы: голосов - 368, средняя оценка - 4.51
Mayonez
382 / 274 / 53
Регистрация: 26.12.2009
Сообщений: 875
1

Как с помощью манипуляторов (или флагов форматирования) найти количество знаков после запятой?

31.10.2010, 16:13. Просмотров 73267. Ответов 4
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <iomanip>
using namespace std;
 
int main()
{
   float g = 10.53446;
   printf("%.4f\n", g);
   cout << setprecision(4) << g << endl;
   return 0;
}
printf 10.5344 - 4 знака после запятой
setprecision(4) 10.53 - 2 знака после запятой, всего 4 знака
в чём разница?
как с помощью манипуляторов (или флагов форматирования) вывести 4 (или другое число) знаков после запятой?

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

1
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2010, 16:13
Ответы с готовыми решениями:

Количество знаков после запятой
После запятой нужно всешжа показывать определенные число знаков, например шесть: 263.000000 Иными...

Максимальное количество знаков после запятой
Подскажите пожалуйста, как сделать, чтобы после запятой у меня выводилось максимальное количество...

Увеличить количество знаков после запятой
Вот код #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;math.h&gt; using namespace std; int...

Какая функция определяет количество знаков после запятой переменной double?
У меня есть программа, которая считает сумму ряда, в неё вводится значение x, точность, с которой...

Отличие форматирующих функций, флагов, манипуляторов
Изучал форматный ввод и когда уже начал думать, что понимаю его, столкнулся с тем, что мне не...

4
-comrade-
358 / 359 / 167
Регистрация: 11.06.2010
Сообщений: 703
31.10.2010, 16:20 2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
int main()
{
    float d = 10.53446;
    std::cout.setf(std::ios_base::fixed,std::ios_base::floatfield);
 
    std::cout.precision(5);
    std::cout << d << std::endl;
    std::cout.precision(4);
    std::cout << d << std::endl;
    std::cout.precision(3);
    std::cout << d << std::endl;
    std::cout.precision(2);
    std::cout << d << std::endl;
    std::cout.precision(1);
    std::cout << d << std::endl;
    system("pause");
    return 0;
}
4
Mayonez
382 / 274 / 53
Регистрация: 26.12.2009
Сообщений: 875
31.10.2010, 16:33  [ТС] 3
это - флаги форматирования (спасибо), а как с манипуляторами и что в приведенном прримере не так?
0
Mr.X
Эксперт С++
3183 / 1710 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
01.11.2010, 21:27 4
Лучший ответ Сообщение было отмечено как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[QUOTE=Mayonez;1073160]это - флаги форматирования ([COLOR="Gray"]спасибо[/COLOR]), а как с манипуляторами и что в приведенном прримере не так?[/QUOTE]
//////////////////////////////////////////////////////////////////////////////////////
#include <iomanip>
#include <iostream>
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    double d = 10.53446;
    
 
    
    std::cout << std::fixed << std::setprecision(5) << d << std::endl;
    
    std::cout << std::fixed << std::setprecision(4) << d << std::endl;
    
    std::cout << std::fixed << std::setprecision(3) << d << std::endl;
    
    std::cout << std::fixed << std::setprecision(2) << d << std::endl;
    
    std::cout << std::fixed << std::setprecision(1) << d << std::endl;
}
6
forprix
2 / 2 / 1
Регистрация: 12.02.2018
Сообщений: 39
17.10.2018, 03:14 5
Тема старовата, знаю, но с проблемой знаков после запятой до сих пор сталкиваются. Так что вот моё решение:
C++
1
2
3
4
5
6
7
8
9
10
using namespace std;
short decs(float num)
{
    short out = 1;
    while (float(int(num * pow(10, out))) != float(num * pow(10, out)))
    {
        out++;
    }
    return out - 1;
}
Функция считает кол-во знаков после запятой

1.425f : 3
1.123456f : 6
1.9f : 1
1.f : 0
0
17.10.2018, 03:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2018, 03:14

Значения флагов-манипуляторов управления вводом/выводом.
Почему отличаются значения флагов-манипуляторов управления вводом/выводом, которые нахожу в инете,...

Как ограничить число знаков после запятой?
надо ограничить число знаков до 4-х после запятой. В x. вот программа, а вівод x конечно в конце: ...

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


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

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

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