aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gleam/int.gleam10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/gleam/int.gleam b/src/gleam/int.gleam
index ca0881e..d806fe1 100644
--- a/src/gleam/int.gleam
+++ b/src/gleam/int.gleam
@@ -721,11 +721,13 @@ pub fn modulo(dividend: Int, by divisor: Int) -> Result(Int, Nil) {
pub fn floor_divide(dividend: Int, by divisor: Int) -> Result(Int, Nil) {
case divisor {
0 -> Error(Nil)
- divisor ->
- case dividend * divisor < 0 && dividend % divisor != 0 {
- True -> Ok(dividend / divisor - 1)
- False -> Ok(dividend / divisor)
+ divisor -> {
+ let quotient = dividend / divisor
+ case quotient < 0 && dividend % divisor != 0 {
+ True -> Ok(quotient - 1)
+ False -> Ok(quotient)
}
+ }
}
}