math floor and ceil round to int rather than float #8258 (#8269)

# Description

#8258 

Math floor and ceil return int types rather than floats.

# User-Facing Changes

Before:
```
/home/rdevenney/projects/open_source/nushell〉[(3.14 | math ceil | describe), 
(3.14 | math floor | describe), 
(3 | math ceil | describe), 
(3 | math floor | describe)]
╭───┬───────╮
│ 0 │ float │
│ 1 │ float │
│ 2 │ int   │
│ 3 │ int   │
╰───┴───────╯

```

After:
```
/home/rdevenney/projects/open_source/nushell〉[(3.14 | math ceil | describe), 
(3.14 | math floor | describe), 
(3 | math ceil | describe), 
(3 | math floor | describe)]
╭───┬─────╮
│ 0 │ int │
│ 1 │ int │
│ 2 │ int │
│ 3 │ int │
╰───┴─────╯

```

# Tests + Formatting

Don't forget to add tests that cover your changes.

Make sure you've run and fixed any issues with these commands:

- `cargo fmt --all -- --check` to check standard code formatting (`cargo
fmt --all` applies these changes)
- `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A
clippy::needless_collect` to check that you're using the standard code
style
- `cargo test --workspace` to check that all tests pass

# After Submitting

If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
This commit is contained in:
Ryan Devenney 2023-03-01 00:28:16 -05:00 committed by GitHub
parent 592e677caf
commit 644164fab3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 4 additions and 4 deletions

View File

@ -58,8 +58,8 @@ impl Command for SubCommand {
fn operate(value: Value, head: Span) -> Value { fn operate(value: Value, head: Span) -> Value {
match value { match value {
Value::Int { .. } => value, Value::Int { .. } => value,
Value::Float { val, span } => Value::Float { Value::Float { val, span } => Value::Int {
val: val.ceil(), val: val.ceil() as i64,
span, span,
}, },
Value::Error { .. } => value, Value::Error { .. } => value,

View File

@ -58,8 +58,8 @@ impl Command for SubCommand {
fn operate(value: Value, head: Span) -> Value { fn operate(value: Value, head: Span) -> Value {
match value { match value {
Value::Int { .. } => value, Value::Int { .. } => value,
Value::Float { val, span } => Value::Float { Value::Float { val, span } => Value::Int {
val: val.floor(), val: val.floor() as i64,
span, span,
}, },
Value::Error { .. } => value, Value::Error { .. } => value,