Что является эквивалентом C ++ команды c float precision?

В Си у нас есть такое утверждение:

printf("%6.3f ",floatNumber);

который ограничивает количество цифр при печати.
Как я могу добиться аналогичного поведения в C++ ? я знаю setprecision но это не поможет мне сделать то же самое.

4

Решение

Чтобы получить формат, аналогичный указанному %6.3f используя только стандартные манипуляторы iostream, вы можете сделать:

std::cout << std::fixed << std::setw(6) << std::setprecision(3) << f;

конкретно std::fixed указывает тот же основной формат, что и f в строке формата, так что, например, «точность» означает то же самое и для строки формата, и для ostream. std::setprecision(3) затем на самом деле устанавливает точность и std::setw(6) устанавливает ширину поля. Без настройки std::fixed вы получите формат, аналогичный указанному в строке формата "%6.3g",

Обратите внимание, что кроме setw эти манипуляторы липкие. То есть они остаются в силе после вывода одной переменной.

7

Другие решения

Ваш лучший вариант будет использовать boost::format, Увидеть документация, особенно примеры

Следующий лучший (если вы не можете использовать boost в вашем проекте), чтобы продолжать использовать printf, Это часть стандартной библиотеки C ++, поэтому она должна «просто работать», пока вы #include <stdio.h> как всегда

4

По вопросам рекламы [email protected]