You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin中如何用向上取整替代.toInt()的向下取整?

Kotlin 实现向上取整转Int

浮点数转Int的向上取整

如果是处理Double或Float类型的浮点数向上取整,直接用Math.ceil()方法即可——它会返回向正无穷方向取整后的Double值,再调用toInt()转成整数:

// 正数场景
val positiveNum = 3.14
val roundedUpPositive = Math.ceil(positiveNum).toInt() // 结果:4

// 负数场景
val negativeNum = -3.14
val roundedUpNegative = Math.ceil(negativeNum).toInt() // 结果:-3

注意:ceil()的逻辑是向正无穷取整,所以负数的向上取整结果会比原数大(比如-3.14取整后是-3),完全符合向上取整的定义。

整数除法的向上取整

如果是两个整数相除需要向上取整(比如5 / 2默认得到2,但我们需要3),可以用两种方式:

  1. 简易公式(适用于除数为正的场景)
    使用(被除数 + 除数 - 1) / 除数的公式,无需浮点运算:
    val dividend = 5
    val divisor = 2
    val result = (dividend + divisor - 1) / divisor // 结果:3
    
    // 负数被除数的情况
    val negativeDividend = -5
    val positiveDivisor = 2
    val negativeResult = (negativeDividend + positiveDivisor - 1) / positiveDivisor // 结果:-2
    
  2. 浮点转换法(通用所有场景)
    将其中一个数转成浮点数,用Math.ceil()取整后再转回Int,不管除数正负都能得到正确结果:
    val dividend = 5
    val divisor = -2
    val result = Math.ceil(dividend.toDouble() / divisor).toInt() // 结果:-2
    

内容的提问来源于stack exchange,提问作者user19729496

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 07:54:20