Reputation: 91790
I'm printing floats trimmed to 3 digits after the zero, and I'd like to know if I can conditionally append a + before positive numbers, so I get
+0.005
for a positive change and
-0.005
for a negative change. Is this easily possible from within printf?
Upvotes: 16
Views: 10492
Reputation: 2487
In my opinion, a better answer would be...
>>> for number in [-42, 0, 1, +13]:
... print("%+d" % number if number != 0 else "0")
...
-42
0
+1
+13
>>>
Or simply...
>>> number = 13
>>> number_str = "%+d" % number if number != 0 else "0"
>>> print(number_str)
+13
>>>
EXTRA: If you want to reverse the sign of an integer...
>>> number = -13
>>> number_str = "%+d" % -number if number != 0 else "0"
>>> print(number_str)
+13
>>>
Thanks! 😎
Upvotes: 0
Reputation: 9172
There's a +
modifier for numbers. Eg. "%+d" or "%+f"
Upvotes: 6
Reputation: 10502
Yes, just use a '+' in the format specifier.
Ex:
>>> "{0:+.03f}".format(1.23456)
'+1.235'
Upvotes: 22