Как в C# вывести число с определенным количеством знаков после запятой?
Здрасьте, я ещё совсем новичок в сфере программирования, но хотелось бы оставить свой ответ на случай, если у такого же неопытного юнца, как я, возникнет какая-то схожая проблема
Перед выводом, после всех исчислений, можно воспользоваться таким методом:
double c = Math.Round(c, 2);
Ответ написан более двух лет назад
Комментировать
Нравится 1 Комментировать
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- C#
- +2 ещё
Как создать ui панельку в ответ на подключение пользователя?
- 1 подписчик
- 2 часа назад
- 24 просмотра
Как вывести 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>отформатировать чтоли надо было?
Типы данных
Вывод действительных чисел на 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.
как ограничить число знаков после запятой в типе float (Си)?
Тип float всегда с одним и тем же количество знаков. А выводить на экран можно с любым количеством знаков и в любом формате — это зависит от того, какой функцией выводить, у каждой свои параметры.
printf(«%.3f», float_val);
выводит три знака после запятой
Похожие вопросы
Ваш браузер устарел
Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.
