mirror of
https://github.com/nushell/nushell.git
synced 2025-02-24 22:41:54 +01:00
Return error on a divide by zero (#1376)
Return error on a divide by zero
This commit is contained in:
parent
c0be02a434
commit
c1bec3b443
@ -49,9 +49,15 @@ fn calc(input: Value, args: &RawCommandArgs) -> Result<OutputStream, ShellError>
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn parse(math_expression: &str, tag: impl Into<Tag>) -> Result<Value, String> {
|
pub fn parse(math_expression: &str, tag: impl Into<Tag>) -> Result<Value, String> {
|
||||||
|
use std::f64;
|
||||||
let num = meval::eval_str(math_expression);
|
let num = meval::eval_str(math_expression);
|
||||||
match num {
|
match num {
|
||||||
Ok(num) => Ok(UntaggedValue::from(Primitive::from(num)).into_value(tag)),
|
Ok(num) => {
|
||||||
|
if num == f64::INFINITY || num == f64::NEG_INFINITY {
|
||||||
|
return Err(String::from("cannot represent result"));
|
||||||
|
}
|
||||||
|
Ok(UntaggedValue::from(Primitive::from(num)).into_value(tag))
|
||||||
|
}
|
||||||
Err(error) => Err(error.to_string()),
|
Err(error) => Err(error.to_string()),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user