在Python中,对浮点数进行四舍五入可以使用内置函数 `round()`。这个函数的基本语法是 `round(number, ndigits)`,其中 `number` 是需要四舍五入的浮点数,`ndigits` 是可选参数,表示要保留的小数位数。如果不提供 `ndigits`,则默认四舍五入到最接近的整数。
四舍五入的基本用法
四舍五入到最接近的整数:
```python
print(round(3.7)) 输出:4
print(round(3.2)) 输出:3
四舍五入到指定的小数位数:
```python
print(round(3.14159, 2)) 输出:3.14
print(round(3.14159, 3)) 输出:3.142
银行家舍入法(四舍六入五成双)
当数字正好处于两个整数的中间时,`round()` 函数会遵循银行家舍入法,即四舍六入五成双。
```python
print(round(2.5)) 输出:2
print(round(3.5)) 输出:4
注意事项
当 `ndigits` 大于0时,四舍五入到指定的小数位数。
当 `ndigits` 等于0时,四舍五入到最接近的整数。
在Python 3中,`round()` 函数遵循标准的四舍五入规则,而在Python 2中,`round()` 函数在处理 `1.0/2.0` 时可能返回 `1`,这是因为Python 2中的 `round()` 函数在处理偶数时可能会有所不同。
使用 `decimal` 模块
对于需要精确小数计算的场景(如金融计算),建议使用 `decimal` 模块,因为它提供了更高的精度和可控的四舍五入规则。
```python
from decimal import Decimal, ROUND_HALF_UP
def round_dec(n, d=2):
s = '0.' + '0' * d
return Decimal(str(n)).quantize(Decimal(s), rounding=ROUND_HALF_UP)
print(round_dec(3.585, 2)) 输出:3.59
使用 `decimal` 模块可以确保在处理浮点数时不会因为精度问题而导致错误的结果。