Printf с вопросом о двойном форматировании

У меня есть следующий оператор printf:

printf("val=%-4.2lf", val);

Однако val никогда не дополняется пробелами, поэтому пространство, занимаемое val, отличается, если перед десятичной дробью стоят 3 или 4 цифры. Разве 4 в спецификаторе формата не должны гарантировать наличие как минимум 4 пробелов?

Извините за новый вопрос, но он меня расстроил.


person Tyler Brock    schedule 16.08.2010    source источник


Ответы (1)


4 указывает минимальное поле total с - у вас также есть десятичная точка и 2 цифры после запятой, которые берут минимум 3 символа из этой ширины поля из 4 символов.

Поэтому, если вы хотите, чтобы минимальная ширина поля составляла 4 символа до десятичной точки, вам следует использовать формат %-7.2lf.

person Michael Burr    schedule 16.08.2010