numfmt: handle negative zero values

This commit is contained in:
Daniel Hofstetter 2022-10-24 15:13:02 +02:00
parent 418518a443
commit dedb6289dd
2 changed files with 10 additions and 1 deletions

View file

@ -161,7 +161,11 @@ fn transform_from(s: &str, opts: &TransformOptions) -> Result<f64> {
remove_suffix(i, suffix, &opts.from).map(|n| {
// GNU numfmt doesn't round values if no --from argument is provided by the user
if opts.from == Unit::None {
if n == -0.0 {
0.0
} else {
n
}
} else if n < 0.0 {
-n.abs().ceil()
} else {

View file

@ -184,6 +184,11 @@ fn test_negative() {
.stdout_is("-1.0Ki\n-1.2Mi\n-103Mi\n");
}
#[test]
fn test_negative_zero() {
new_ucmd!().pipe_in("-0\n-0.0").run().stdout_is("0\n0.0\n");
}
#[test]
fn test_no_op() {
new_ucmd!()