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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.89
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345
11.07.2013, 16:51     Вывести число с тремя цифрами после запятой #1
Э. Кенинг. Эффективное программирование на 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2013, 16:51     Вывести число с тремя цифрами после запятой
Посмотрите здесь:

Как округлить в С++ вещественное число до 2 знаков после запятой? C++
C++ Дано вещественное число, проверить является ли это число симметричным относительно положения точки до двух знаков после запятой.
C++ Вывести все трехзначные числа, квадраты которых оканчиваются тремя цифрами, которые и составляют искомые числа
Вводится число от 1 до 15. Вывести данное число, записанное римскими цифрами C++
C++ Вывести двумерный массив с 3 знаками после запятой
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Belfegor
Ghost
 Аватар для Belfegor
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 524
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;
}
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345
11.07.2013, 16:59  [ТС]     Вывести число с тремя цифрами после запятой #3
Цитата Сообщение от Belfegor Посмотреть сообщение
std::fixed
но там про std::fixed ни слова нет. я даже не знаю что это означает

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

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

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

Не по теме:

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

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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2013, 17:39     Вывести число с тремя цифрами после запятой
Еще ссылки по теме:

Вывести наименшую зарплату на предприятии с двумя цифрами после запятой C++
Вывести на экран число с двумя десятичными и с тремя C++
Как вывести double до 2 знаков после запятой? C++

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

Или воспользуйтесь поиском по форуму:
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;
}

Yandex
Объявления
11.07.2013, 17:39     Вывести число с тремя цифрами после запятой
Ответ Создать тему
Опции темы

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