"Cai Gengyang" wrote in message
news:d34dc21b-fe74-40fc-9b54-c37110529...@googlegroups.com...
meal = 44.50
tax = 0.0675
tip = 0.15
meal = meal + meal * tax
total = meal + meal * tip
print("%.2f" % total)
What do the lines inside the parentheses in this statement print("%.2f" %
total) mean ?
What does "%.2f" % total represent ?
From the Fine Manual -
Index > Symbols > '%' > Formatting takes you to a section headed
"printf-style String Formatting".
"Given format % values (where format is a string), % conversion
specifications in format are replaced with zero or more elements of values"
A conversion specifier consists of two or more characters, of which the
first is always '%', and the rest provide a wide variety of formatting
options.
Precision (optional) is given as a '.' (dot) followed by the precision, so
'.2' means show the result with a precision of 2.
'f' is a conversion type which represents 'floating point decimal format'.
Note the following warning -
"The formatting operations described here exhibit a variety of quirks that
lead to a number of common errors (such as failing to display tuples and
dictionaries correctly). Using the newer str.format() interface helps avoid
these errors, and also provides a generally more powerful, flexible and
extensible approach to formatting text."
Using str.format(), your example would look like this -
print('{:.2f}'.format(total))
Another word of warning. Using a format specifier displays the value nicely
rounded to a number of decimal places, but the original value is unchanged.
Use the interpreter to see what the actual value is. For serious work
involving monetary values, you should look at the Decimal module.
Frank Millman
--
https://mail.python.org/mailman/listinfo/python-list