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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.89
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345
#1

Вывести число с тремя цифрами после запятой - C++

11.07.2013, 16:51. Просмотров 2619. Ответов 7
Метки нет (Все метки)

Э. Кенинг. Эффективное программирование на C++ есть одна задача и в ней таким способом это сделано:
небольшую часть программы покажу, остальное не имеет значения

C++
1
2
3
4
std::streamsize prec;
 
prec = std::cout.precision();
std::cout << "Ваша итоговая оценка равна " << std::setprecision(3) << 0.2*midterm + 0.4*final + 0.4*sum/count << std::setprecision(prec) << std::endl;
Но все равно после запятой не печатаются цифры. Получается автор этой книги ошибся?
Все переменные имеют тип double
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2013, 16:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести число с тремя цифрами после запятой (C++):

Вывести наименшую зарплату на предприятии с двумя цифрами после запятой - C++
Очень-очень вас прошу помогите с задачей На малом предприятии работает определенное количество работников, но не менее двух –...

Вывести все трехзначные числа, квадраты которых оканчиваются тремя цифрами, которые и составляют искомые числа - C++
Решаю задачу, вроде алгоритм продумала правильно, но с решением не получается. int kvadrat=1; for (int i=100; i&lt;1000; i++) ...

Дано рандомное вещественное число P, найти число M после запятой - C++
1)Дано рандомное вещественное число P, найти число М после запятой, если пользователь задает точность количества чисел после запятой. 2)...

Вводится число от 1 до 15. Вывести данное число, записанное римскими цифрами - C++
Вводится число от 1 до 15. Вывести данное число, записанное римскими цифрами (I, II, III, IV, V, VI, …., XV);С++ плииииз!

Дано вещественное число, проверить является ли это число симметричным относительно положения точки до двух знаков после запятой. - C++
Только начинаю программировать на с/с++ и столкнулась с логическими выражениями, простейшие задачи могу решить а в эту никак не могу...

Вывести на экран число с двумя десятичными и с тремя - C++
дано a= 31.8467 Нужно вывести на экран с двумя десятичными и с тремя

7
Belfegor
Ghost
173 / 173 / 6
Регистрация: 16.09.2012
Сообщений: 526
11.07.2013, 16:55 #2
C++
1
2
3
4
5
6
7
#include <iostream>
#include <iomanip>
 
int main() {
    std::cout << std::fixed << std::setprecision(3) << 0.2*midterm + 0.4*final + 0.4*sum/count << std::endl;
    return 0;
}
1
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345
11.07.2013, 16:59  [ТС] #3
Цитата Сообщение от Belfegor Посмотреть сообщение
std::fixed
но там про std::fixed ни слова нет. я даже не знаю что это означает

Добавлено через 22 секунды
могу скрин сделать
0
Belfegor
Ghost
173 / 173 / 6
Регистрация: 16.09.2012
Сообщений: 526
11.07.2013, 17:01 #4
Цитата Сообщение от BigLow Посмотреть сообщение
я даже не знаю что это означает
http://www.cplusplus.com/reference/ios/fixed/
http://en.cppreference.com/w/cpp/io/manip/fixed
1
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345
11.07.2013, 17:07  [ТС] #5
на всякий случай покажу эту страничку с задачей
не понимаю этих авторов. сами с ошибками пишут и других еще учат

Belfegor, спасибо. теперь буду знать)

 Комментарий модератора 
не выкладывайте код в виде графики
0
Миниатюры
Вывести число с тремя цифрами после запятой  
Belfegor
11.07.2013, 17:13
  #6

Не по теме:

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

0
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345
11.07.2013, 17:19  [ТС] #7
вот весь код, но он у меня уже с исправлениями. я добавил std::fixed как вы посоветовали. а без него неправильно работает, не печатает цифры после запятой

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
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <iomanip>
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    std::string name;           // имя студента
    double midterm, final;      // оценки по экзаменам в середине и в конце семестра
    unsigned int count=0;               // количество оценок
    double sum=0.0;             // сумма оценок
    double x;                   // 
    std::streamsize prec;
 
    // запрашиваем и считываем имя студента
    std::cout << "Пожалуйста, введите свое имя: ";
    std::cin >> name;
    std::cout << "Привет, " << name << "!" << std::endl;
 
    // запрашиваем и считываем оценки по экзаменам
    std::cout << "Пожалуйста, введите оценки по экзаменам в середине и в конце семестра: ";
    std::cin >> midterm >> final;
 
    // запрашиваем оценки за выполнение домашних заданий
    std::cout << "Введите все оценки за выполнение домашних заданий, завершив ввод признаком конца файла: ";
    while (std::cin >> x)
    {
        ++count;            // еще одна оценка прочитана
        sum += x;
    }
 
    // выводим результат
    prec = std::cout.precision();
    std::cout << "Ваша итоговая оценка равна " << std::fixed << std::setprecision(3) << 0.2*midterm + 0.4*final + 0.4*sum/count << std::setprecision(prec) << std::endl;
 
    system("pause");
    return 0;
}
0
Belfegor
11.07.2013, 17:39     Вывести число с тремя цифрами после запятой
  #8

Не по теме:

както так

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
29
30
31
32
33
34
35
36
37
38
#include <iostream>
#include <iomanip>
//using namespace std;
 
int main() {
    setlocale(LC_ALL, "Russian");
 
    std::string name; // имя студента
    double midterm, fina; // оценки по экзаменам в середине и в конце семестра
    unsigned int count = 0; // количество оценок
    double sum = 0.0; // сумма оценок
    double x; // 
 
 
    // запрашиваем и считываем имя студента
    std::cout << "Пожалуйста, введите свое имя: ";
    std::cin >> name;
    std::cout << "Привет, " << name << "!" << std::endl;
 
    // запрашиваем и считываем оценки по экзаменам
    std::cout << "Пожалуйста, введите оценки по экзаменам в середине и в конце семестра: ";
    std::cin >> midterm >> fina;
 
    // запрашиваем оценки за выполнение домашних заданий
    std::cout << "Введите все оценки за выполнение домашних заданий, завершив ввод признаком конца файла: ";
    while (std::cin >> x) {
        ++count; // еще одна оценка прочитана
        sum += x;
    }
    // выводим результат
    std::streamsize prec = std::cout.precision();
    std::cout << "Ваша итоговая оценка равна " << std::setprecision(4)
            << 0.2 * midterm + 0.4 * fina + 0.4 * sum / count
            << std::setprecision(prec) << std::endl;
 
    system("pause");
    return 0;
}

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2013, 17:39
Привет! Вот еще темы с ответами:

Число знаков после запятой - C++
Никогда не задумывался, но можно-ли ограничить число знаков во флоате, не для вывода, а для рассчетов?

Вывести n знаков после запятой - C++
Всем привет, не знаю как через cout вывести 8 знаков после запятой. Заранее спасибо

Вывести числа после запятой - C++
Как вывести числа после запятой,не зная точного кол-во чисел после запятой:D Например, 56/60=0,93333333333333333333333333333333,чтобы...

Как ограничить число знаков после запятой? - C++
надо ограничить число знаков до 4-х после запятой. В x. вот программа, а вівод x конечно в конце: #include &lt;iostream.h&gt; #include...


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

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

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