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
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 mathv = 2.357print(math.ceil(v*100)/100) # -> 2.36print(math.floor(v*100)/100) # -> 2.35
or:
from math import floor, ceildef roundDown(n, d=8): d = int('1' + ('0' * d)) return floor(n * d) / ddef roundUp(n, d=8): d = int('1' + ('0' * d)) return ceil(n * d) / d