首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

更改浮点型舍入模式

在 Python 中,浮点数的舍入可以通过多种方式实现,具体取决于您想要的舍入模式。Python 的内置 round() 函数提供了基本的舍入功能,但如果您需要更复杂的舍入模式,可以使用 decimal 模块。

1. 使用 round() 函数

round() 函数可以用于基本的舍入。其语法如下:

代码语言:javascript
复制
round(number, ndigits)
  • number:要舍入的数字。
  • ndigits:要保留的小数位数(可选)。

示例

代码语言:javascript
复制
# 基本舍入
print(round(3.14159, 2))  # 输出: 3.14
print(round(2.675, 2))     # 输出: 2.67(注意:浮点数精度问题)

2. 使用 decimal 模块

如果您需要更精确的舍入控制,可以使用 decimal 模块。该模块允许您指定舍入模式。

示例

代码语言:javascript
复制
from decimal import Decimal, ROUND_HALF_UP, ROUND_HALF_DOWN, ROUND_CEILING, ROUND_FLOOR

# 创建 Decimal 对象
num = Decimal('2.675')

# 使用不同的舍入模式
rounded_half_up = num.quantize(Decimal('0.01'), rounding=ROUND_HALF_UP)
rounded_half_down = num.quantize(Decimal('0.01'), rounding=ROUND_HALF_DOWN)
rounded_ceiling = num.quantize(Decimal('0.01'), rounding=ROUND_CEILING)
rounded_floor = num.quantize(Decimal('0.01'), rounding=ROUND_FLOOR)

print("ROUND_HALF_UP:", rounded_half_up)   # 输出: 2.68
print("ROUND_HALF_DOWN:", rounded_half_down) # 输出: 2.67
print("ROUND_CEILING:", rounded_ceiling)     # 输出: 2.68
print("ROUND_FLOOR:", rounded_floor)          # 输出: 2.67

常用舍入模式

  • ROUND_HALF_UP:四舍五入(0.5 向上)。
  • ROUND_HALF_DOWN:五舍六入(0.5 向下)。
  • ROUND_CEILING:向上取整。
  • ROUND_FLOOR:向下取整。

3. 自定义舍入函数

如果您需要实现特定的舍入逻辑,可以自定义一个舍入函数。例如,您可以实现一个四舍五入到最近的偶数的函数(也称为“银行家舍入”):

代码语言:javascript
复制
def round_to_even(n):
    return round(n) if n % 1 != 0.5 else round(n / 2) * 2

print(round_to_even(2.5))  # 输出: 2.0
print(round_to_even(3.5))  # 输出: 4.0
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券