30

I'm sure this must be a duplicate but I can't find a clear answer on SO.

How do I output 2083525.34561 as 2,083,525.35 in Python 2?

I know about:

"{0:,f}".format(2083525.34561)

which outputs commas but does not round. And:

"%.2f" % 2083525.34561

which rounds, but does not add commas.

RoadieRich
  • 5,983
  • 3
  • 37
  • 51
Richard
  • 57,831
  • 112
  • 317
  • 501

2 Answers2

61

Add a decimal point with number of digits .2f see the docs: https://docs.python.org/2/library/string.html#format-specification-mini-language :

In [212]:
"{0:,.2f}".format(2083525.34561)

Out[212]:
'2,083,525.35'

For python 3 you can use f-strings (thanks to @Alex F):

In [2]:
value = 2083525.34561
f"{value:,.2f}"


Out[2]:
'2,083,525.35'
EdChum
  • 339,461
  • 188
  • 752
  • 538
0
("%.2f" % 2083525.34561).replace(".", ",")
Vincent
  • 998
  • 5
  • 11