While working my way through the Kotlin docs I stopped to browse Kotlin’s standard library, writing tiny programs to to test my understanding of standard library features. Floor division surprised me.
// Intellij IDEA 2024.1
// kotlin("jvm") version "1.9.23"
fun main() {
println(-10.floorDiv(4)) // -2
println(kotlin.math.floor(-10.0 / 4.0)) // -3.0
}
Both java.lang.Math.floorDiv and Python’s floor division operator // return -3 when called to floor divide -10 by 4.
I believe Kotlin should also return -3 here, rather than -2. Documentation states:
Divides this value by the other value, flooring the result to an integer that is closer to negative infinity.
I searched the Kotlin Issue Tracker but did not find an open issue for floorDiv. I can create one, but hope to confirm the problem with the community first.