68 / 68 / 18
Регистрация: 03.06.2012
Сообщений: 176

setprecision() и setiosflags()

11.06.2012, 19:29. Показов 82843. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Почему чтобы напечатать число с двумя цифрами после запятой нужно использовать обе эти функции?
C++
1
cout << setprecision(2) << setiosflags(ios::fixed | ios::showpoint) << 10.0 / 3;
Ведь setprecision(2) и так уже показывает что результат будет с двумя цифрами после десятичной точки.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.06.2012, 19:29
Ответы с готовыми решениями:

Вопрос по setiosflags() и double
У Дейтлов есть код // Рис. 2.9: fig02_09.cpp // Использование повторения с пометкой для вычисления среднего ...

setiosflags(ios::left)
int main() { setlocale(LC_ALL, &quot;Rus&quot;); cout &lt;&lt; setiosflags(ios::left)&lt;&lt; setfill('.') &lt;&lt; setw(10) &lt;&lt; &quot;Фамилия&quot; &lt;&lt; setfill('.')...

setiosflags(ios::left)
Почему setiosflags(ios::right) выравнивает числа по правой стороне а setiosflags(ios::left) не выравнивает по левой? for (int n=1;...

9
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
11.06.2012, 22:31
Можно и без них. Только чтобы напечатать с двумя цифрами после запятой надо писать
setprecision(3)
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12841 / 7590 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
11.06.2012, 22:48
Цитата Сообщение от g-h Посмотреть сообщение
Почему чтобы напечатать число с двумя цифрами после запятой нужно использовать обе эти функции?
Это не функции, это флаги. Один указывает, сколько цифр должно быть после запятой, второй - в каком виде число выводить.

Цитата Сообщение от David Sylva Посмотреть сообщение
Только чтобы напечатать с двумя цифрами после запятой надо писать
setprecision(3)
Да ну?!

C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <iomanip>
 
int main() {
    double pi = 3.1415926536;
    
    std::cout << std::setprecision(2) << std::fixed << pi << std::endl;
    std::cout << std::setprecision(2) << std::scientific << pi << std::endl;
    
    return 0;
}
http://codepad.org/3KHLvMYK
0
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
12.06.2012, 00:30
David Sylva, вы же fixed не используете
пример здесь http://www.cplusplus.com/refer... precision/
0
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
12.06.2012, 00:37
Цитата Сообщение от easybudda Посмотреть сообщение
Да ну?!
0
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
12.06.2012, 01:33
David Sylva, пост #4 это ответ на #5.
Попробуй вывести 35.14283 — сколько цифр после точки получится?
0
0 / 0 / 0
Регистрация: 08.06.2014
Сообщений: 11
16.06.2014, 07:58
Ну на вопрос же так и не ответили. (как я понял) setprecision(2) выводит число 1384 как 13.84. Для чего присутствие флагов, которые показывают, что в числе будет 2 знака после точки(запятой), когда уже setprecision всё указал. Если писать код без этих флагов что изменится? Может кто-нибудь растолковать их значение? Только не надо кидать ссылки на ресурсы с буржуйским языком.
0
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
16.06.2014, 09:52
Цитата Сообщение от ArtemZ94 Посмотреть сообщение
(как я понял) setprecision(2) выводит число 1384 как 13.84.
Ну а чего стоит взять да и проверить? Если флаги fixed или scientific не использовались, то число 1384 будет выведено как 1.4e+03, потому что setprecision(2) в этом случае задаёт количество значащих десятичных цифр в числе. Если использовать fixed или scientific, то setprecision(2) задаёт количество цифр после точки, то есть вывод будет 1384.00 и 1.38e+03 соответственно. А сами эти флаги выбирают формат представления числа — обычное представление десятичной дроби или научное, с мантиссой и экспонентой...
1
0 / 0 / 0
Регистрация: 08.06.2014
Сообщений: 11
16.06.2014, 10:19
Цитата Сообщение от grizlik78 Посмотреть сообщение
Ну а чего стоит взять да и проверить? Если флаги fixed или scientific не использовались, то число 1384 будет выведено как 1.4e+03, потому что setprecision(2) в этом случае задаёт количество значащих десятичных цифр в числе. Если использовать fixed или scientific, то setprecision(2) задаёт количество цифр после точки, то есть вывод будет 1384.00 и 1.38e+03 соответственно. А сами эти флаги выбирают формат представления числа — обычное представление десятичной дроби или научное, с мантиссой и экспонентой...
А showpoint для чего? Без него и так выводит 1384.00
0
Эксперт С++
 Аватар для grizlik78
2382 / 1666 / 279
Регистрация: 29.05.2011
Сообщений: 3,402
16.06.2014, 10:28
Это для случая, когда не используются флаги fixed или scientific. Если задать setprecision(5), то можно получить 1384.0 или 1384, в зависимости от использования флага showpoint.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.06.2014, 10:28
Помогаю со студенческими работами здесь

setprecision()
Есть задача: Написать программу выводящую в текстовый файл таблицу значений функций exp(x) и ln(x) на отрезке с шагом 0,2. x выводить...

Setw и setprecision
Всем привет! Исходник: // setprecision example #include &lt;iostream&gt; // std::cout, std::fixed #include &lt;iomanip&gt; //...

Использование манипулятора setprecision
Какой вариант более правильный. Вычислить значение выражения, включающего 5 членов: Y=(π+3)^2+(π+6)^3+(π+9)^4+... ...

SETprecision. В чем ошибка?
#include &lt;iostream&gt; #include &lt;iomanip&gt; using namespace std; int main() { int n; long double...

Унарная операция setprecision
Здравствуйте. Манипулятор потока fixed, насколько я понял, нужен для того, чтобы вывести значение с фиксированной точкой. Но почему...


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

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

Новые блоги и статьи
Пишем адаптер для локального хранилища S3 на C#
stackOverflow 16.07.2025
Разработка современных приложений часто требует интеграции с объектными хранилищами, и Amazon S3 стал де-факто стандартом в этой области. Однако работа с облачными сервисами в процессе разработки. . .
Старые замки
kumehtar 16.07.2025
Смотрел тут фото, попались пара старых замков. И сразу бросилось в глаза из отличие. Например: Замок Бистон, в англии. Разрушенное сооружение. Но - не испорченное людьми, по крайней мере - на. . .
Java и Eclipse Store: Сверхбыстрые приложения с In-Memory DB
Javaican 15.07.2025
Eclipse Store — это микро-движок персистентности для Java, который позволяет хранить и извлекать нативные Java-объекты без необходимости преобразования данных или использования объектно-реляционного. . .
EmBitz, создание проекта, отладка, прошивка
locm 15.07.2025
Создание проекта для Blue Pill (STM32F103C8T6) в EmBitz 2. 30, написания кода blink, запуск отладки в ОЗУ, заливка релизной прошивки во flash используя ST-Link и др. . . .
Трассировка корутин Kotlin с OpenTelemetry
mobDevWorks 14.07.2025
Асинхронное программирование меняет правила игры, особенно когда речь заходит о трассировке операций. В Kotlin с его корутинами эта проблема приобретает особый оттенок, который я хотел бы детально. . .
Облачные приложения на Rust: руководство по архитектуре микросервисов
golander 13.07.2025
Когда я впервые взялся за проектирование облачной платформы для одного из наших клиентов, выбор стоял между привычными Go и Java. Но после нескольких месяцев разработки микросервисной системы,. . .
Как Node.js выполняет асинхронные операции
Reangularity 13.07.2025
Каждый раз, когда я рассказываю про Node. js, возникает один и тот же вопрос: "Как эта штука может быть быстрой, если JavaScript — однопоточный язык?" И это действительно кажется парадоксом. Ведь в. . .
Как писать чистый, тестируемый и качественный код на Python
py-thonny 12.07.2025
Помню свой первый проект на Python. Работал тогда быстро, грязно, лишь бы работало. Код был похож на запутанный клубок - переменные по одной букве, функции на 200 строк, комментарии отсутствовали как. . .
Blazor и контроллер сервопривода IoT Meadow Maple
Wired 11.07.2025
Я решил разобраться, как можно соединить современные веб-технологии с миром "железа". Интересная комбинация получилась из Blazor в качестве веб-интерфейса и микроконтроллера Meadow с его веб-сервером. . .
Генерация OpenQASM из кода Q#
EggHead 10.07.2025
Летом 2024-го я начал эксперименты с библиотекой Q# Bridge, и знаете что? Она оказалась просто находкой для тех, кто работает на стыке разных квантовых экосистем. Основная фишка этой библиотеки -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru