Типы данных
Вывод действительных чисел на C++ Перед выводом действительных чисел (float, double, long double) следует указать выходному потоку точность вывода. Например:
float x; x = 123.456789; cout.setf(ios::fixed); // вывод в фиксированном формате cout.precision(6); // вывод до 6 знака после точки, включительно cout
Вы используете гостевой доступ (Вход)
Эта страница: General type: incourse. Context Страница: Вывод действительных чисел на C++ (context id 276028). Page type mod-page-view.
Как сделать, чтобы выводилась только определенное число цифр после запятой?
Важно: precision делает округление по правилам математики.
Отслеживать
11.5k 8 8 золотых знаков 42 42 серебряных знака 69 69 бронзовых знаков
ответ дан 4 окт 2017 в 16:46
Slava Shlyaga Slava Shlyaga
21 1 1 бронзовый знак
А что такое «по правилам математики»?
4 окт 2017 в 19:01
//я не пам’ятаю як це зробити у стилі С++, але у стилі С це робиться дуже легко #include int main() < double pi = 3.14159; printf("%.2f", pi); //результатом буде такий вівід: 3.14 return 0; >
Отслеживать
ответ дан 19 дек 2011 в 13:58
1,823 5 5 золотых знаков 28 28 серебряных знаков 40 40 бронзовых знаков
Highly active question. Earn 10 reputation (not counting the association bonus) in order to answer this question. The reputation requirement helps protect this question from spam and non-answer activity.
-
Важное на Мете
Связанные
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.17.3574
Как сокращать количество цифр после запятой при выводе C++?


- C++
- +1 ещё
Как документировать C++ проект?
- 1 подписчик
- 15 янв.
- 127 просмотров

- C++
- +1 ещё
Как пофиксить ошибку c++?
- 1 подписчик
- 14 янв.
- 128 просмотров

- C++
Входит в бесконечный цыкл,как исправить?
- 1 подписчик
- 14 янв.
- 104 просмотра

- C++
Как исправить ошибки в компиляторе?
- 1 подписчик
- 13 янв.
- 113 просмотров

- C++
Возможно ли избежать ошибку чтения в массиве если алгоритм задействует ячейку которой нет?
- 1 подписчик
- 12 янв.
- 98 просмотров

- C++
Консоль игра, попадает в бесконечный цикл,что тут не так?
- 1 подписчик
- 12 янв.
- 117 просмотров

- C++
- +1 ещё
Сmake не подключаеться библиотека curses,что делать?
- 1 подписчик
- 09 янв.
- 90 просмотров

- C++
Не могу, понять как компьютер перемещает свой знак?
- 1 подписчик
- 08 янв.
- 144 просмотра

- C++
- +2 ещё
Почему не компилируется код C++ в VS code/Platformio?
- 1 подписчик
- 07 янв.
- 125 просмотров

- C++
Что быстрее индексы или указатели?
- 1 подписчик
- 03 янв.
- 248 просмотров
от 250 000 ₽
от 200 000 ₽
от 140 000 до 300 000 ₽
19 янв. 2024, в 02:52
20000 руб./за проект
19 янв. 2024, в 01:12
1000 руб./за проект
19 янв. 2024, в 00:52
3000 руб./за проект
Минуточку внимания
Присоединяйтесь к сообществу, чтобы узнавать новое и делиться знаниями
- Какой есть сервис предоставляющий почту для домена, но не накладывающий ограничения на общение с заграничными сервисами?
- 2 подписчика
- 2 ответа
- 3 подписчика
- 0 ответов
- 3 подписчика
- 0 ответов
- 2 подписчика
- 1 ответ
- 1 подписчик
- 1 ответ
- 3 подписчика
- 2 ответа
- 2 подписчика
- 2 ответа
- 2 подписчика
- 4 ответа
- 2 подписчика
- 1 ответ
- 2 подписчика
- 2 ответа
Как вывести 2 знака после запятой c
Как по уму подсчитать количество значемых знаков после запятой в double?
Только ли через sprintf, _ecvt, _fcvt, _gcvt самому подсчитывая?Re: Количество знаков после запятой в double
От: superman Дата: 12.09.07 11:26 Оценка: Здравствуйте, Symon, Вы писали:
S>Как по уму подсчитать количество значемых знаков после запятой в double?
S>Только ли через sprintf, _ecvt, _fcvt, _gcvt самому подсчитывая?В зависимости от того зачем это надо
ИМХО в большинстве случаев только введя внешнее ограничение типа «знаки выше Н-ого не значащие»
sprintf в этом деле мало поможет, самому считать тоже безполезноRe: Количество знаков после запятой в double
От: Erop Дата: 12.09.07 12:28 Оценка: Здравствуйте, Symon, Вы писали:
S>Как по уму подсчитать количество значемых знаков после запятой в double?
S>Только ли через sprintf, _ecvt, _fcvt, _gcvt самому подсчитывая?Вообще-то в файле limits.h описана константа DBL_EPSILON, кажется.
Это самое маленькое положительное число, которое при приюавлении к 1.0 даёт ответ отличный от 1.0
Это так сказать принципиальное железное ограничение.Просто обычно, в реальных задачах количество реально значащих цифр меньше того, на которое позволяет надеяться величина этой константы.
Поясни зачем тебе нужно количество знаков после запятой?Да, кстати, можно ещё и так:
int calcDigCount() < double eps = 1.0; double base = 1.0; int digCount = 0; while( base + eps != base ) < eps *= 0.1; assert( eps >0 ); digCount++; > assert( eps > 0 ); return digCount; >Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно «ради красного словца». За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re: Количество знаков после запятой в double
От: vayerx Дата: 12.09.07 17:29 Оценка: Здравствуйте, Symon, Вы писали:
S>Как по уму подсчитать количество значемых знаков после запятой в double?
S>Только ли через sprintf, _ecvt, _fcvt, _gcvt самому подсчитывая?frexp() + std::numeric_limits::digits() [ + ldexp() ]
Re: Количество знаков после запятой в double
От: Symon Дата: 13.09.07 05:49 Оценка: На самом деле, причина не такая уж и извращённая, как могло показаться:
нужно в зависимости от стартового значения выводить последующие с тем же кол-вом знаков после запятой.
Например ряд чисел и соответствующих выводимых значений должен бы выглядеть так:
1.45 — стартовое значение так и выводится «1.45», для дальнейшего вывода будут использоваться 2 знака после запятой:
2.9 — «2.90»
4.0 — «4.00»
5.4 — «5.40»
6.55 — «6.55»А вот решение с применением класса MFC — CString
UINT GetDecimalDigitsCount (double dStartValue) < CString strBuffer; strBuffer.Format (_T("%f"), dStartValue); strBuffer.TrimRight(_T('0')); return static_cast (strBuffer.GetLength() - strBuffer.Find (_T('.')) - 1); >Re: Количество знаков после запятой в double
От: MasterZiv Дата: 13.09.07 06:33 Оценка: Symon пишет:
> Как по уму подсчитать количество значемых знаков после запятой в double?Нет в double и float количества знаков после запятой. Как понятия нет.
Так что посчитать невозможно.
во-первых, положение запятой определяется форматом вывода.
Во-вторых, количество десятичных знаков неопределено. Их столько,
сколько ты хочешь напечатать.Posted via RSDN NNTP Server 2.1 beta
Re[2]: Количество знаков после запятой в doubleОт: Symon Дата: 13.09.07 06:36 Оценка: Здравствуйте, MasterZiv, Вы писали:
MZ>Symon пишет:
>> Как по уму подсчитать количество значемых знаков после запятой в double?MZ>Нет в double и float количества знаков после запятой. Как понятия нет.
MZ>Так что посчитать невозможно.
MZ>во-первых, положение запятой определяется форматом вывода.
MZ>Во-вторых, количество десятичных знаков неопределено. Их столько,
MZ>сколько ты хочешь напечатать.Ты долго думал чтоб ТАКУЮ УМНУЮ МЫСЛЬ напесать.
ЗЫ см. мой же пост в этом топике над твоимRe[2]: Количество знаков после запятой в double
От: alzt Дата: 13.09.07 06:43 Оценка: Здравствуйте, Symon, Вы писали:
отформатировать чтоли надо было?
Re[3]: Количество знаков после запятой в double
От: Symon Дата: 13.09.07 06:49 Оценка: Здравствуйте, alzt, Вы писали:
A>Здравствуйте, Symon, Вы писали:
A>отформатировать чтоли надо было?