Kotlin Mod [patched] May 2026

// BAD val r = a % b val correct = if (r < 0) r + b else r // GOOD val correct = a.mod(b) | Language | Operator/Function | Behavior | Sign of Result | | :--- | :--- | :--- | :--- | | Kotlin | % / .rem() | Truncated toward zero | Same as dividend | | Kotlin | .mod() | Floored (Euclidean) | Always non‑negative | | Python | % | Floored | Same as divisor | | Java | % | Truncated | Same as dividend | | Java | Math.floorMod() | Floored | Always non‑negative | | C / C++ | % | Truncated (impl‑defined pre‑C++11) | Same as dividend | | JavaScript | % | Truncated | Same as dividend |

Title: The Semantics and Practical Application of the Modulo Operator in Kotlin: Distinguishing rem and mod kotlin mod

fun main() val dividend = -5 val divisor = 3 println("Remainder (%.rem()): $dividend.rem(divisor)") // Output: -2 println("Modulo (.mod()): $dividend.mod(divisor)") // Output: 1 // BAD val r = a % b

// Verification of modulo property: // -5 ≡ 1 (mod 3) because -5 - 1 = -6, which is divisible by 3. which is divisible by 3.