Kotlin标准库是否提供获取最接近可整除数值的函数?
Kotlin标准库相关函数说明
Kotlin标准库中并没有直接提供你定义的closestDivisible(initialValue: Number, divisibleBy: Int)这类函数,用于获取与初始值最接近且能被指定整数整除的数值。
你可以根据需求自行实现该函数,以下是两种常见场景的实现示例:
整数场景实现
fun closestDivisible(initialValue: Number, divisibleBy: Int): Long { require(divisibleBy != 0) { "divisibleBy不能为0" } val value = initialValue.toLong() val remainder = value % divisibleBy val absRemainder = remainder.absoluteValue return if (absRemainder > divisibleBy / 2) { if (remainder > 0) value + (divisibleBy - absRemainder) else value - (divisibleBy - absRemainder) } else { value - remainder } }
浮点数场景实现
fun closestDivisible(initialValue: Number, divisibleBy: Int): Double { require(divisibleBy != 0) { "divisibleBy不能为0" } val value = initialValue.toDouble() val quotient = value / divisibleBy return kotlin.math.round(quotient) * divisibleBy }
上述实现中加入了对divisibleBy为0的合法性校验,避免运行时异常。你可以根据实际使用的数值类型(整数/浮点数)选择对应的实现,也可以进一步扩展以支持更多类型的适配。
内容的提问来源于stack exchange,提问作者OffeeX
相关产品推荐
相关产品推荐

