12

What is the formatter to make sure that + or - signs are always shown in front of the float value in printf() in C?
I haven't done C in a while, so where can I find a good reference on the web, any suggestions are appreciated

mskfisher
  • 3,291
  • 4
  • 35
  • 48
7oso
  • 283
  • 1
  • 3
  • 9

2 Answers2

15

Put a + sign after the % but before the field width, the precision specifier, or the f. For example, use "%+10.2f" for a ten character wide field with two digits after the decimal.

From printf(3):

+

A sign (+ or -) should always be placed before a number produced by a signed conversion. By default a sign is used only for negative numbers. A + overrides a space if both are used.

Community
  • 1
  • 1
PleaseStand
  • 31,641
  • 6
  • 68
  • 95
2

"%+f" is what you're looking for (though note that when you print it, you'll actually be printing a double, not a float -- a float is implicitly promoted to double when passed to a function that doesn't have a prototype or for a variadic argument).

Jerry Coffin
  • 476,176
  • 80
  • 629
  • 1,111