Ограничение печати с плавающей запятой определенной длиной? - PullRequest
1 голос
/ 21 февраля 2012

Вот связанная тема .

Я ищу что-то немного другое, я печатаю матрицу 4x4 с плавающей запятой. На самом деле я использую этот метод prettyprint , чтобы сделать это, что не позволит мне использовать printf форматирование, с которым я немного более знаком.

Я могу установить ios_base::width(), чтобы установить минимальную ширину для заполнения нулей и единиц, но подобные 0.6666667 ухудшают выравнивание. Я полагаю, что могу установить precision, но это влияет только на количество значащих цифр, а не на общее количество символов, произведенных значением. Кажется, я не могу использовать unsetf на ostream для установки «записи по умолчанию» ... Даже если бы я мог это сделать, я подозреваю, что знак минус в любом случае испортит выравнивание.

Есть ли обходной путь?

1 Ответ

1 голос
/ 01 июля 2012

Мое временное решение - width(7) и precision(4). Это дает мне 4 цифры после десятичной точки и 3 - это пробел, чтобы поставить знак минус, одну цифру и десятичную точку. Я должен проверить и изменить ширину, чтобы вместить (некоторые из) значений больше 99.9999 или меньше -9.9999, чтобы сохранить выравнивание. Преимущество этого в том, что 567890123 не будет напечатано как 5678901, все, что он сделает, это сместит выравнивание (много, оно будет напечатано как 567890123.0000).

...