Naftuli Kay
Naftuli Kay

Reputation: 91790

Append a plus sign before positive numbers?

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

Answers (3)

Eduardo Lucio
Eduardo Lucio

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

Ricardo Cárdenes
Ricardo Cárdenes

Reputation: 9172

There's a + modifier for numbers. Eg. "%+d" or "%+f"

Upvotes: 6

Gavin H
Gavin H

Reputation: 10502

Yes, just use a '+' in the format specifier.

Ex:

>>> "{0:+.03f}".format(1.23456)
'+1.235'

Upvotes: 22

Related Questions