aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gleam/int.gleam10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/gleam/int.gleam b/src/gleam/int.gleam
index 44a6de4..2ef4b73 100644
--- a/src/gleam/int.gleam
+++ b/src/gleam/int.gleam
@@ -759,13 +759,11 @@ 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 -> {
- let quotient = dividend / divisor
- case quotient < 0 && dividend % divisor != 0 {
- True -> Ok(quotient - 1)
- False -> Ok(quotient)
+ divisor ->
+ case dividend * divisor < 0 && dividend % divisor != 0 {
+ True -> Ok(dividend / divisor - 1)
+ False -> Ok(dividend / divisor)
}
- }
}
}