在写代码的时候,经常会遇到小数转整数的需求。比如计算平均值后要取整,或者处理用户输入的数值时需要去掉小数部分。这时候就得用到整数取整的方法。不同的语言提供了不同的函数,但核心思路差不多。
直接截断小数部分
最简单粗暴的方式就是直接扔掉小数点后面的内容。比如 5.9 变成 5,-3.7 变成 -3。这种操作叫“向零取整”,很多语言里的 int() 或 trunc() 就是干这个的。
int(5.9) # 结果是 5
int(-3.7) # 结果是 -3
向下取整(floor)
不管正负,都往更小的方向走。比如 5.9 向下是 5,但 -3.7 向下是 -4。这是因为 -4 比 -3.7 更小。Python 里常用 math.floor() 实现。
import math
math.floor(5.9) # 得到 5
math.floor(-3.7) # 得到 -4
向上取整(ceil)
和 floor 相反,往更大的方向走。6.1 向上变成 7,-2.3 向上变成 -2。对应的是 math.ceil() 函数。
math.ceil(6.1) # 结果是 7
math.ceil(-2.3) # 结果是 -2
四舍五入
这个大家最熟悉。0.5 及以上进一位,否则舍去。不过要注意,有些语言对 .5 的处理有特殊规则,比如 Python 的 round() 在遇到偶数时会往最近的偶数靠。
round(2.5) # 结果是 2
round(3.5) # 结果是 4
实际场景举例
假设你在写一个网络请求限流器,每秒最多处理 10 次请求。现在平均每分钟有 63 次请求进来,想算出每秒大概几次。63 / 60 ≈ 1.05,如果直接取整就是 1,但实际上已经接近触发限制了。这时候用 ceil 就更保险,确保不会超载。
requests_per_minute = 63
per_second = requests_per_minute / 60
import math
limit_check = math.ceil(per_second) # 得到 2,提前预警
不同取整方式适合不同场景。做计数时可能用 int() 截断就行,做资源分配可能得用 ceil 避免不够用,而统计类数据通常配合 round 让结果好看些。