# 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 spec`0`

enables sign-aware zero-padding for numeric types`.2`

sets the precision to`2`

`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`