From a1f7a3c17bc3e122a26d0ed14fd8c9a320826599 Mon Sep 17 00:00:00 2001 From: JT Date: Mon, 6 Sep 2021 17:35:58 +1200 Subject: [PATCH] improve int division to be more nushell-like --- crates/nu-protocol/src/value.rs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/crates/nu-protocol/src/value.rs b/crates/nu-protocol/src/value.rs index 09c3e57806..18a538e685 100644 --- a/crates/nu-protocol/src/value.rs +++ b/crates/nu-protocol/src/value.rs @@ -509,10 +509,17 @@ impl Value { match (self, rhs) { (Value::Int { val: lhs, .. }, Value::Int { val: rhs, .. }) => { if *rhs != 0 { - Ok(Value::Int { - val: lhs / rhs, - span, - }) + if lhs % rhs == 0 { + Ok(Value::Int { + val: lhs / rhs, + span, + }) + } else { + Ok(Value::Float { + val: (*lhs as f64) / (*rhs as f64), + span, + }) + } } else { Err(ShellError::DivisionByZero(op)) }