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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 86, средняя оценка - 4.66
LVV
57 / 57 / 4
Регистрация: 15.02.2010
Сообщений: 249
#1

Форматированный вывод - C++

24.02.2012, 09:04. Просмотров 12407. Ответов 13
Метки нет (Все метки)

Например:

C++
1
2
double a=3.00;
    cout << a;
выводит 3
А мне нужно (таково условие вывода в задаче), чтобы выводило именно 3.00
То есть, чтобы выводило в обычной (не scientific) записи округлённое число именно до сотых. И чтобы обязательно выводило два десятичных знака после запятой, даже если это нули.
Как это сделать. Помогите, пожалуста. Экспериментировал c precision, ceil, floor... нужного результата добиться не смог. Само округление еще могу сделать, но вот вывести нули после точки не получается...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2012, 09:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Форматированный вывод (C++):

форматированный вывод - C++
Всем, здрасте! У меня вопрос, как сделать вывод линии перед цифрами? (длина линии зависит от кол-ва цифр и точки) для реального у меня...

Форматированный вывод - C++
Написать код, который позволит скомпилировать следующую строку cout &lt;&lt; toUpper &lt;&lt; “абвгд”; Как нужно решать данную задачу? Через...

Форматированный вывод чисел? - C++
в результате перемножения элементов матрицы С (скрин) выводится след. число (объявленное как double), как можно привести к какому-нибудь...

Форматированный вывод в файл - C++
Подскажите пожалуйста как сделать форматированный вывод в файл. нужно просто оформить в виде таблицы.

Форматированный вывод матриц - C++
как сделать красивый вывод матриц 2*2,3*3 ,4*4,5*5?чтоб не в одну строку все выводило.а так: 2*2: a1 a2 a3 a4 3*3: a1 a2 a3 a4...

Форматированный ввод-вывод - C++
Доброго времени суток. Только начал постигать С++, как столкнулся с проблемой. В универе преподают в среде Turbo C, а я хочу в Visual...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
24.02.2012, 09:15 #2
C++
1
#include <iomanip>
C++
1
std::cout << std::setprecision( 2 ) << std::fixed << a;
dimcoder
Полярный
458 / 431 / 67
Регистрация: 11.09.2011
Сообщений: 1,129
24.02.2012, 09:18 #3
Toshkarik, неа, не выведет. Надо к даблу кастовать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <cstdlib>
#include <iostream>
#include <iomanip>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    int x = 3;
    cout << setprecision(2) << fixed << double(x);
    system("PAUSE > NULL");
    return EXIT_SUCCESS;
}
http://liveworkspace.org/code/82e38f...82958bb9c7a9c1
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
24.02.2012, 09:25 #4
Зачем? Если в приведенном примере тип переменной double, при чем тут int?
dimcoder
Полярный
458 / 431 / 67
Регистрация: 11.09.2011
Сообщений: 1,129
24.02.2012, 09:26 #5
Toshkarik, извиняюсь, почему-то был уверен, что там int.
LVV
57 / 57 / 4
Регистрация: 15.02.2010
Сообщений: 249
24.02.2012, 09:32  [ТС] #6
Ну, вот у меня в ручном режиме:
C++
1
2
3
4
5
double a=3.001;
    a*=100;
    a=floor(a+0.5);//округляем
    int b = (int)a;
        cout << b/100 << "." << b%100/10 << b%10;
только это же не число выводит, а набор цифр и знаков.
А надо бы число...
dimcoder
Полярный
458 / 431 / 67
Регистрация: 11.09.2011
Сообщений: 1,129
24.02.2012, 09:36 #7
LVV, вам же уже показали как делать.
LVV
57 / 57 / 4
Регистрация: 15.02.2010
Сообщений: 249
24.02.2012, 09:57  [ТС] #8
Извините, dimcoder.
Помогите разобраться с Вашим кодом.
Если у меня в вычислениях получается, к примеру вещественное число 3.001, а я должен вывести на экран 3.00
При 3.007 должно вывести 3.01
Как сюда приспособить Ваш код с int x = 3; ?
dimcoder
Полярный
458 / 431 / 67
Регистрация: 11.09.2011
Сообщений: 1,129
24.02.2012, 10:02 #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <cstdlib>
#include <iostream>
#include <iomanip>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    double x = 3.007;
    cout << setprecision(2) << fixed << double(x);
    system("PAUSE > NULL");
    return EXIT_SUCCESS;
}
http://liveworkspace.org/code/677512...5e1f5573662b7c

http://liveworkspace.org/code/4e76f1...618cd7990a316b
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
24.02.2012, 10:04 #10
Вы вообще второй пост видели?
LVV
57 / 57 / 4
Регистрация: 15.02.2010
Сообщений: 249
24.02.2012, 10:06  [ТС] #11
Спасибо большое, dimcoder!

Странная вещь.
Я ведь тоже пробовал так:
C++
1
2
3
cout.precision(2);
    cout.fixed;
        cout <<  x;
и не получалось.

А так:
C++
1
cout <<setprecision(2) << fixed<<  x;
получилось.

Интересно, почему так?
renald
35 / 35 / 2
Регистрация: 11.02.2012
Сообщений: 105
24.02.2012, 10:21 #12
можно так, тогда

C++
1
2
3
cout.precision(2);
        cout.setf(ios::fixed);
cout << a;
dimcoder
Полярный
458 / 431 / 67
Регистрация: 11.09.2011
Сообщений: 1,129
24.02.2012, 12:42 #13
Цитата Сообщение от LVV Посмотреть сообщение
тоже пробовал так
По идее компилятор должен был выдать предупреждение о бессмысленности cout.fixed
Этот оператор просто возвращает значение типа fmtflags по моему.
http://liveworkspace.org/code/dbebb3...e0a17191efbd4c

http://liveworkspace.org/code/d4d930...9f741bba7357a0
renald
35 / 35 / 2
Регистрация: 11.02.2012
Сообщений: 105
24.02.2012, 14:12 #14
по моему, fixed - это и есть сам флаг, который включают вызовом setf

Цитата Сообщение от dimcoder Посмотреть сообщение
По идее компилятор должен был выдать предупреждение о бессмысленности cout.fixed
Да, если компилировать с -Wall - что рекомендовано, но кто-нибудь так делает
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2012, 14:12
Привет! Вот еще темы с ответами:

Программа в С++. Форматированный вывод - C++
Второе задание, на него я написала такую программу и она работает,но мне нужно сдедать в программе такую же таблицу,как в задании (длинную...

Форматированный вывод в цикле - C++
Доброго времени суток. Нужна помощь с циклом и выводом так сказать примитивной синусоиды( рисунка из цифр). Помогите упростить КОД P.S...

Форматированный вывод. Как??? - C++
Здравствуйте. База данных содержит поле серийный номер (6 цифр) Проблема с тем, что если первыми записать нули, то они не выводятся, а...

Форматированный вывод матрицы - C++
Ребят как сделать чтоб на выводе была матрица тоже квадратная ,а не в столбик все значения


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
24.02.2012, 14:12
Ответ Создать тему
Опции темы

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