int
函数和 round
函数的区别
在编程中,特别是在使用 Python 时,int
和 round
是两个常用的函数,但它们有不同的用途和行为。以下是这两个函数的详细比较:
1. int
函数
功能:
- 将一个数(整数或浮点数)转换为整数类型。
- 去掉小数部分,不进行四舍五入。
用法:
result = int(number)
示例:
print(int(5.7)) # 输出: 5
print(int(-3.2)) # 输出: -3
print(int("42")) # 输出: 42 (如果字符串表示的是数字)
注意事项:
- 如果传入的是一个无法转换为整数的字符串,会抛出
ValueError
异常。 - 对负数进行转换时,直接截断小数部分,而不是向零取整。
2. round
函数
功能:
- 将一个浮点数四舍五入到指定的精度(默认为0,即四舍五入到最接近的整数)。
- 返回结果仍然是浮点数类型,除非明确指定返回类型为整数(通过类型转换)。
用法:
result = round(number, ndigits=0)
其中,ndigits
表示要保留的小数位数。
示例:
print(round(5.7)) # 输出: 6
print(round(-3.2)) # 输出: -3 (注意这里是向零取整)
print(round(5.5)) # 输出: 6 (四舍五入)
print(round(2.536, 2)) # 输出: 2.54
注意事项:
- 在某些情况下,特别是涉及二进制浮点运算时,
round
的行为可能不完全符合预期(例如,round(2.675, 2)
可能返回2.67
而非2.68
),这是由于浮点数的存储方式导致的。 - 对于负数,
round
函数采用“银行家舍入”(Bankers' rounding)规则,即当数值正好在两个整数的中间时,会舍入到最近的偶数整数(尽管在大多数情况下,它表现为标准的四舍五入)。
总结
int
函数用于将数值转换为整数类型,并直接截断小数部分。round
函数用于对浮点数进行四舍五入操作,可以指定保留的小数位数,并且默认返回浮点数类型的结果。