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
Asked
Active
Viewed 1.1k times
2 Answers
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
-
1+1: but maybe add an example for clarity, e.g. `printf("x = %+g\n", x);` ? – Paul R Oct 16 '10 at 20:42
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