Why do we use 0.2 f in python?

In a program from Python Programming, it calculates the total for how many coins you have.

def main():
      print "Change Counter"
      print
      print "Please enter the count of each coin type."
      quarters = input("Quarters: ")
      dimes = input("Dimes: ")
      nickels = input("Nickels: ")
      pennies = input("Pennies: ")
      total = quarters * .25 + dimes * .10 + nickels * .05 +                                   pennies * .01
      print
      print "The total value of your change is", total
      main()

The answer comes out to $1.5 instead of $1.50. To fix it, the book says to change line 12 to:

It said change line 12 to

print "The total value of your change is $%0.2f" % (total)

I understand the %. What is the 0.2f? The book's explanation is not making heads or tails.

I have what does to 2f mean. I sometimes saw it in code, but I don't get it. Example: print("\nYour Celsius value is {:0.2f}ºC.\n".format(answer))

Gamer M, Please specify a language name in the tags, one or some that specifically be relevant to the question. You are taking multiple courses, it's hard to deduce to narrow down the scope by language, and 'self self-learning' doesn't help here.

Why do we use 0.2 f in python?

Now that you pasted your example, I can tell you definitively that it is meant to indicate a floating point value within your format brackets. However, 0.2 means that you are also formatting your output to two points of precision. In this case, only 2, so your format would look like this: 3.14 2.72 etc

Why do we use 0.2 f in python?

Well, it could mean any number of things. It could mean 2.0 floating point, as f denotes a floating point literal in most languages. It could also be 2f hexadecimal, which is equivalent to 47 decimal. It could also be a string literal too. Couldn't be a variable name, as most languages specify that numbers cannot be the first character of a variable name. Beyond that, no idea. Would have to see the specific code you're talking about to give you a certain answer. I would suggest linking your code playground or paste the code in your questions, otherwise you won't get good results from them.

Why do we use 0.2 f in python?

  1. Home
  2. Blog
  3. Python String Formatting

(Sponsors) Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!


Updated on Jan 07, 2020


The format() method allows you format string in any way you want.

Syntax: template.format(p1, p1, .... , k1=v1, k2=v2)

template is a string containing format codes, format() method uses it's argument to substitute value for each format codes. For e.g:

>>> 'Sam has {0} red balls and {1} yellow balls'.format(12, 31)

{0} and {1} are format codes. The format code {0} is replaced by the first argument of format() i.e 12, while {1} is replaced by the second argument of format() i.e 31.

Expected Output:

Sam has 12 red balls and 31 yellow balls

This technique is okay for simple formatting but what if you want to specify precision in floating point number? For such thing you need to learn more about format codes. Here is the full syntax of format codes.

Syntax: {[argument_index_or_keyword]:[width][.precision][type]}

The type can be used with format codes:

Format codesDescription
d for integers
f for floating point numbers
b for binary numbers
o for octal numbers
x for octal hexadecimal numbers
s for string
e for floating point in exponent format

Following examples will make things more clear.

Example 1:

>>> "Floating point {0:.2f}".format(345.7916732)

Here we specify 2 digits of precision and f is used to represent floating point number.

Expected Output:

Example 2:

>>> import math
>>> "Floating point {0:10.3f}".format(math.pi)

Here we specify 3 digits of precision, 10 for width and f for floating point number.

Expected Output:

Example 3:

"Floating point pi = {0:.3f}, with {1:d} digit precision".format(math.pi, 3)

Here d in {1:d} represents integer value.

Expected Output:

Floating point pi = 3.142, with 3 digit precision

You need to specify precision only in case of floating point numbers if you specify precision for integer ValueError will be raised.

Example 5:

'Sam has {1:d} red balls and {0:d} yellow balls'.format(12, 31)

Expected Output:

Sam has 31 red balls and 12 yellow balls

Example 6:

"In binary 4 is {0:b}".format(4) # b for binary, refer to Fig 1.1

Expected Output:

Example 7:

array = [34, 66, 12]
"A = {0}, B = {1}, C = {2}".format(*array)

Expected Output:

Example 8:

d = {
'hats' : 122,
'mats' : 42
}

"Sam had {hats} hats and {mats} mats".format(**d)

Expected Output:

Sam had 122 hats and 42 mats

The format() method also supports keywords arguments.

'Sam has {red} red balls and {green} yellow balls'.format(red = 12, green = 31)

Note while using keyword arguments we need to use arguments inside {} not numeric index.

You can also mix position arguments with keywords arguments

'Sam has {red} red balls, {green} yellow balls \
and {0} bats'.format(3, red = 12, green = 31)

The format() method of formatting string is quite new and was introduced in Python 2.6 . There is another old technique  you will see in legacy codes which allows you to format string using % operator instead of format() method.

Let's take an example.

"%d pens cost = %.2f" % (12, 150.87612)

Here we are using template string on the left of %. Instead of {} for format codes we are using %. On the right side of % we use tuple to contain our values. %d and %.2f are called as format specifiers, they begin with % followed by character that represents the data type. For e.g %d format specifier is a placeholder for a integer, similarly %.2f is a placeholder for floating point number.

So %d is replaced by the first value of the tuple i.e 12 and %.2f is replaced by second value i.e 150.87612.

Expected Output:

Some more examples.

Example 1:

New:

"{0:d} {1:d} ".format(12, 31)

Old:

Expected Output:

Example 2:

New:

"{0:.2f} {1:.3f}".format(12.3152, 89.65431)

Old:

"%.2f %.3f" % (12.3152, 89.65431)

Expected Output:

Example 3:

New:

"{0:s} {1:o} {2:.2f} {3:d}".format("Hello", 71, 45836.12589, 45 )

Old:

"%s %o %.2f %d" % ("Hello", 71, 45836.12589, 45 )

Expected Output:


Other Tutorials (Sponsors)

This site generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!


What does 2 F mean in Python?

2f means to round up to two decimal places. You can play around with the code to see what happens as you change the number in the formatter.

What does 0.3 F mean in Python?

In the example, the format string "{:0.3f}" tells the format() function to replace the bracketed expression with the floating point value, with only 3 decimal places.

Why %F is used in Python?

Python string formatting It uses the % operator and classic string format specifies such as %s and %d . Since Python 3.0, the format function was introduced to provide advance formatting options. Python f-strings are available since Python 3.6. The string has the f prefix and uses {} to evaluate variables.

How do you write .2f in Python?

2f are called as format specifiers, they begin with % followed by character that represents the data type. For e.g %d format specifier is a placeholder for a integer, similarly %. 2f is a placeholder for floating point number. ... Python String Formatting..