Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
JustLearn
C++
1 / 1 / 0
Регистрация: 21.10.2017
Сообщений: 115
1

Setprecision работает не так как хотелось бы

22.08.2018, 21:27. Просмотров 1263. Ответов 4

Как я понимаю функция setprecision определяет сколько знаков после точки должно выводиться. Но на деле происходит иначе.
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <conio.h>
#include <iomanip>
using namespace std;
int main(int argc, char *argv[]) {
    setlocale(LC_ALL, "");
    cout << setprecision(2) << 123.2356 << endl;
    cout << setw(20) << "Hello there!" << endl;
    _getch();
    return 0;
}
По сути вывод должен быть таким: 123.23
Но он вот такой: 1.2e+02
Как это исправить???
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.08.2018, 21:27
Ответы с готовыми решениями:

setprecision() не работает, или работает не так как нужно
cout &lt;&lt; setw(5) &lt;&lt; &quot;X=&quot; &lt;&lt; setprecision(2) &lt;&lt; X; cout &lt;&lt; setw(20) &lt;&lt; &quot;X=&quot; &lt;&lt; setprecision(0)&lt;&lt;...

Код не работает так, как хотелось бы
В книге есть задача с кодом: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int...

Операция сравнения пошла не так, как хотелось бы
Пользователь вводит значения, сохраняющиеся в класс Product; программа запрашивает слово для поиска...

Функция работает не так как хотелось бы(
хочу попробовать сделать калькульятор на JS . При нажатии на кнопку '1' вызывается функция push() ,...

Помогите со скриптом на PHP. Он работает, но не так как хотелось бы
Помогите со скриптом на PHP. Он работает,но не так как хотелось бы. Я только учусь PHP. Вот...

4
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
5799 / 2793 / 765
Регистрация: 18.10.2014
Сообщений: 5,064
22.08.2018, 21:35 2
Лучший ответ Сообщение было отмечено MrGluck как решение

Решение

Цитата Сообщение от JustLearn Посмотреть сообщение
Как я понимаю функция setprecision определяет сколько знаков после точки должно выводиться.
Нет.

Во-первых, это не "функция", а манипулятор.

Во-вторых, так, как вы описали, манипулятор std::setprecision работает только в форматах std::fixed и std::scientific. В формате std::default (по умолчанию), std::setprecision задает общее количество значащих цифр, а не количество цифр после запятой.

Цитата Сообщение от JustLearn Посмотреть сообщение
Как это исправить???
По-видимому вам нужен формат std::fixed

C++
1
cout << fixed << setprecision(2) << 123.2356 << endl;
Вывод при этом будет 123.24, а не 123.23.
0
JustLearn
C++
1 / 1 / 0
Регистрация: 21.10.2017
Сообщений: 115
22.08.2018, 21:42  [ТС] 3
TheCalligrapher, спасибо, но появился еще вопрос) я в книге прочитал, что формат fixed устанавливает флаг fixed. За что он отвечает?
0
TheCalligrapher
С чаем беда...
Эксперт CЭксперт С++
5799 / 2793 / 765
Регистрация: 18.10.2014
Сообщений: 5,064
22.08.2018, 21:45 4
Цитата Сообщение от JustLearn Посмотреть сообщение
я в книге прочитал, что формат fixed устанавливает флаг fixed. За что он отвечает?
Хм... Вот за то и отвечает: при установленном флаге fixed поток вывода будет форматировать данные с плавающей точкой в соответствии с требованиями формата fixed.
0
JustLearn
C++
1 / 1 / 0
Регистрация: 21.10.2017
Сообщений: 115
22.08.2018, 21:52  [ТС] 5
Ясно, спасибо.
0
22.08.2018, 21:52
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.08.2018, 21:52

JTree оказался не так прост как хотелось бы
Описываю происходящее: По правой кнопке на CustomTree(extends JTree) вызывается компонент...

Как это работает? Хотелось бы реализовать на VB6
http://potrebitel.biz/angel/mk.htm

Что в коде ни так? while не работает так, как ожидаю
Написанный код, как я думаю, должен выдавать цифры от 0 до 1000, столбиком. Но выдает начиная от...


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

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

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