We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent db0597f commit 8487444Copy full SHA for 8487444
library/core/src/num/flt2dec/strategy/dragon.rs
@@ -366,7 +366,7 @@ pub fn format_exact<'a>(
366
if order == Ordering::Greater
367
|| (order == Ordering::Equal
368
// SAFETY: `buf[len-1]` is initialized.
369
- && (len == 0 || unsafe { buf[len - 1].assume_init() } & 1 == 1))
+ && len > 0 && unsafe { buf[len - 1].assume_init() } & 1 == 1)
370
{
371
// if rounding up changes the length, the exponent should also change.
372
// but we've been requested a fixed number of digits, so do not alter the buffer...
library/core/tests/fmt/float.rs
@@ -5,7 +5,7 @@ fn test_format_f64() {
5
assert_eq!("10", format!("{:.0}", 9.9f64));
6
assert_eq!("9.8", format!("{:.1}", 9.849f64));
7
assert_eq!("9.9", format!("{:.1}", 9.851f64));
8
- assert_eq!("1", format!("{:.0}", 0.5f64));
+ assert_eq!("0", format!("{:.0}", 0.5f64));
9
assert_eq!("1.23456789e6", format!("{:e}", 1234567.89f64));
10
assert_eq!("1.23456789e3", format!("{:e}", 1234.56789f64));
11
assert_eq!("1.23456789E6", format!("{:E}", 1234567.89f64));
@@ -31,7 +31,7 @@ fn test_format_f32() {
31
assert_eq!("10", format!("{:.0}", 9.9f32));
32
assert_eq!("9.8", format!("{:.1}", 9.849f32));
33
assert_eq!("9.9", format!("{:.1}", 9.851f32));
34
- assert_eq!("1", format!("{:.0}", 0.5f32));
+ assert_eq!("0", format!("{:.0}", 0.5f32));
35
assert_eq!("1.2345679e6", format!("{:e}", 1234567.89f32));
36
assert_eq!("1.2345679e3", format!("{:e}", 1234.56789f32));
37
assert_eq!("1.2345679E6", format!("{:E}", 1234567.89f32));
library/core/tests/num/flt2dec/mod.rs
@@ -138,7 +138,7 @@ where
138
139
// check exact rounding for zero- and negative-width cases
140
let start;
141
- if expected[0] >= b'5' {
+ if expected[0] > b'5' {
142
try_fixed!(f(&decoded) => &mut buf, expectedk, b"1", expectedk + 1;
143
"zero-width rounding-up mismatch for v={v}: \
144
actual {actual:?}, expected {expected:?}",
@@ -1007,7 +1007,7 @@ where
1007
assert_eq!(to_string(f, 999.5, Minus, 3), "999.500");
1008
assert_eq!(to_string(f, 999.5, Minus, 30), "999.500000000000000000000000000000");
1009
1010
- assert_eq!(to_string(f, 0.5, Minus, 0), "1");
+ assert_eq!(to_string(f, 0.5, Minus, 0), "0");
1011
assert_eq!(to_string(f, 0.5, Minus, 1), "0.5");
1012
assert_eq!(to_string(f, 0.5, Minus, 2), "0.50");
1013
assert_eq!(to_string(f, 0.5, Minus, 3), "0.500");
0 commit comments