I am getting a lot of decimals in the output of this code (Fahrenheit to Celsius converter).
My code currently looks like this:
def main(): printC(formeln(typeHere())) def typeHere(): global Fahrenheit try: Fahrenheit = int(raw_input("Hi! Enter Fahrenheit value, and get it in Celsius!\n")) except ValueError: print "\nYour insertion was not a digit!" print "We've put your Fahrenheit value to 50!" Fahrenheit = 50 return Fahrenheit def formeln(c): Celsius = (Fahrenheit - 32.00) * 5.00/9.00 return Celsius def printC(answer): answer = str(answer) print "\nYour Celsius value is " + answer + " C.\n" main()
So my question is, how do I make the program round every answer to the 2nd decimal place?
Python round() Function The round() function returns a floating point number that is a rounded version of the specified number, with the specified number of decimals. The default number of decimals is 0, meaning that the function will return the nearest integer.
You can use the round
function, which takes as its first argument the number and the second argument is the precision after the decimal point.
In your case, it would be:
answer = str(round(answer, 2))
Using str.format()
's syntax to display answer
with two decimal places (without altering the underlying value of answer
):
def printC(answer): print("\nYour Celsius value is {:0.2f}ºC.\n".format(answer))
Where:
:
introduces the format spec 0
enables sign-aware zero-padding for numeric types.2
sets the precision to 2
f
displays the number as a fixed-point numberIf you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With