# Python round()

The round() function returns a floating-point number rounded to the specified number of decimals.

The syntax of the `round()` function is:

`round(number, ndigits)`

## round() Parameters

The `round()` function takes two parameters:

• number - the number to be rounded
• ndigits (optional) - number up to which the given number is rounded; defaults to 0

## Return value from round()

• If `ndigits` is not provided, `round()` returns the nearest integer to the given number.
• If `ndigits` is given, `round()` returns the number rounded off to the `ndigits` digits.

## Example 1: How round() works in Python?

``````# for integers
print(round(10))

# for floating point
print(round(10.7))

# even choice
print(round(5.5))``````

Output

```10
11
6```

## Example 2: Round a number to the given number of decimal places

``````print(round(2.665, 2))
print(round(2.675, 2))``````

Output

```2.67
2.67```

Note: The behavior of `round()` for floats can be surprising. Notice `round(2.675, 2)` gives `2.67` instead of the expected `2.68`. This is not a bug: it's a result of the fact that most decimal fractions can't be represented exactly as a float.

When the decimal `2.675` is converted to a binary floating-point number, it's again replaced with a binary approximation, whose exact value is:

`2.67499999999999982236431605997495353221893310546875`

Due to this, it is rounded down to 2.67.

If you're in a situation where this precision is needed, consider using the `decimal` module, which is designed for floating-point arithmetic:

``````from decimal import Decimal

# normal float
num = 2.675
print(round(num, 2))

# using decimal.Decimal (passed float as string for precision)
num = Decimal('2.675')
print(round(num, 2))``````

Output

```2.67
2.68```