Цитата(bw429 @ Sep 8 2017, 13:31)

А printf может всегда выводить знак, даже если "+"?
Да.
%-012.2f
Точно не понмю, но печатал всегда со знаком.
Вопрос в "ведущих" нулях. Надо курить реализацию форматов printf
на конкретном компиляторе, а также зависит от подулюченных библиотек.
Для IAR/MSP430 - отличается CLIB / DLIB
Цитата(ViKo @ Sep 8 2017, 13:42)

. . . .
Если вопрос только в установке формата (места точки и размерах целой-дробной частей)
то в (s)printf есть параметр *, через который можно в нее (приннтф) передавать эти значения.
Т.о. вместо написания отдельной ф-ии, возможно, достаточно будет
реализовать макрос-обертку с установкой требуемого формата
#define MyPrint(target, var, point_left_, point_right) \
sprintf( target, "%*.*f", point_left, point_right, &var) \
В работе я эту конструкцию не проверял, небыло необходимости.
Получится или нет - надо курить док на printf.