How to round to 2 decimals with Python?
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 spec0
enables sign-aware zero-padding for numeric types.2
sets the precision to2
f
displays the number as a fixed-point number
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))
Most answers suggested round
or format
. round
sometimes rounds up, and in my case I needed the value of my variable to be rounded down and not just displayed as such.
round(2.357, 2) # -> 2.36
I found the answer here: How do I round a floating point number up to a certain decimal place?
import math
v = 2.357
print(math.ceil(v*100)/100) # -> 2.36
print(math.floor(v*100)/100) # -> 2.35
or:
from math import floor, ceil
def roundDown(n, d=8):
d = int('1' + ('0' * d))
return floor(n * d) / d
def roundUp(n, d=8):
d = int('1' + ('0' * d))
return ceil(n * d) / d