Skip to content

Commit 94ab4d2

Browse files
committed
fix rounding issue with exponents in fmt
1 parent bb6c66b commit 94ab4d2

File tree

2 files changed

+357
-4
lines changed

2 files changed

+357
-4
lines changed

library/core/src/fmt/num.rs

+8
Original file line numberDiff line numberDiff line change
@@ -334,8 +334,16 @@ macro_rules! impl_Exp {
334334
// round up last digit
335335
if rem >= 5 {
336336
n += 1;
337+
// if the digit is rounded to the next power
338+
// instead adjust the exponent
339+
if n % 10 == 0 {
340+
n /= 10;
341+
exponent += 1;
342+
}
337343
}
344+
// n = 100
338345
}
346+
// assert!(n == 666, "{}\n{}\n{}\n",n, exponent, added_precision);
339347
(n, exponent, exponent, added_precision)
340348
};
341349

library/core/tests/fmt/num.rs

+349-4
Original file line numberDiff line numberDiff line change
@@ -128,30 +128,375 @@ fn test_format_int_exp_precision() {
128128
let big_int: u32 = 314_159_265;
129129
assert_eq!(format!("{big_int:.1e}"), format!("{:.1e}", f64::from(big_int)));
130130

131-
//test adding precision
131+
// test adding precision
132132
assert_eq!(format!("{:.10e}", i8::MIN), "-1.2800000000e2");
133133
assert_eq!(format!("{:.10e}", i16::MIN), "-3.2768000000e4");
134134
assert_eq!(format!("{:.10e}", i32::MIN), "-2.1474836480e9");
135135
assert_eq!(format!("{:.20e}", i64::MIN), "-9.22337203685477580800e18");
136136
assert_eq!(format!("{:.40e}", i128::MIN), "-1.7014118346046923173168730371588410572800e38");
137137

138-
//test rounding
138+
// test rounding
139139
assert_eq!(format!("{:.1e}", i8::MIN), "-1.3e2");
140140
assert_eq!(format!("{:.1e}", i16::MIN), "-3.3e4");
141141
assert_eq!(format!("{:.1e}", i32::MIN), "-2.1e9");
142142
assert_eq!(format!("{:.1e}", i64::MIN), "-9.2e18");
143143
assert_eq!(format!("{:.1e}", i128::MIN), "-1.7e38");
144144

145-
//test huge precision
145+
// test huge precision
146146
assert_eq!(format!("{:.1000e}", 1), format!("1.{}e0", "0".repeat(1000)));
147147
//test zero precision
148148
assert_eq!(format!("{:.0e}", 1), format!("1e0",));
149149
assert_eq!(format!("{:.0e}", 35), format!("4e1",));
150150

151-
//test padding with precision (and sign)
151+
// test padding with precision (and sign)
152152
assert_eq!(format!("{:+10.3e}", 1), " +1.000e0");
153153
}
154154

155+
#[test]
156+
fn new_test() {
157+
// test precision remains correct when rounding to next power
158+
assert_eq!(format!("{:.1e}", 999), "1.0e3");
159+
assert_eq!(format!("{:.1e}", 1001), "1.0e3");
160+
assert_eq!(format!("{:.1e}", 1000), "1.0e3");
161+
assert_eq!(format!("{:.0e}", -999), "-1e3");
162+
assert_eq!(format!("{:.0e}", -998), "-1e3");
163+
assert_eq!(format!("{:.0e}", -997), "-1e3");
164+
assert_eq!(format!("{:.0e}", -996), "-1e3");
165+
assert_eq!(format!("{:.0e}", -995), "-1e3");
166+
assert_eq!(format!("{:.0e}", -994), "-1e3");
167+
assert_eq!(format!("{:.0e}", -993), "-1e3");
168+
assert_eq!(format!("{:.0e}", -992), "-1e3");
169+
assert_eq!(format!("{:.0e}", -991), "-1e3");
170+
assert_eq!(format!("{:.0e}", -990), "-1e3");
171+
assert_eq!(format!("{:.0e}", -989), "-1e3");
172+
assert_eq!(format!("{:.0e}", -988), "-1e3");
173+
assert_eq!(format!("{:.0e}", -987), "-1e3");
174+
assert_eq!(format!("{:.0e}", -986), "-1e3");
175+
assert_eq!(format!("{:.0e}", -985), "-1e3");
176+
assert_eq!(format!("{:.0e}", -984), "-1e3");
177+
assert_eq!(format!("{:.0e}", -983), "-1e3");
178+
assert_eq!(format!("{:.0e}", -982), "-1e3");
179+
assert_eq!(format!("{:.0e}", -981), "-1e3");
180+
assert_eq!(format!("{:.0e}", -980), "-1e3");
181+
assert_eq!(format!("{:.0e}", -979), "-1e3");
182+
assert_eq!(format!("{:.0e}", -978), "-1e3");
183+
assert_eq!(format!("{:.0e}", -977), "-1e3");
184+
assert_eq!(format!("{:.0e}", -976), "-1e3");
185+
assert_eq!(format!("{:.0e}", -975), "-1e3");
186+
assert_eq!(format!("{:.0e}", -974), "-1e3");
187+
assert_eq!(format!("{:.0e}", -973), "-1e3");
188+
assert_eq!(format!("{:.0e}", -972), "-1e3");
189+
assert_eq!(format!("{:.0e}", -971), "-1e3");
190+
assert_eq!(format!("{:.0e}", -970), "-1e3");
191+
assert_eq!(format!("{:.0e}", -969), "-1e3");
192+
assert_eq!(format!("{:.0e}", -968), "-1e3");
193+
assert_eq!(format!("{:.0e}", -967), "-1e3");
194+
assert_eq!(format!("{:.0e}", -966), "-1e3");
195+
assert_eq!(format!("{:.0e}", -965), "-1e3");
196+
assert_eq!(format!("{:.0e}", -964), "-1e3");
197+
assert_eq!(format!("{:.0e}", -963), "-1e3");
198+
assert_eq!(format!("{:.0e}", -962), "-1e3");
199+
assert_eq!(format!("{:.0e}", -961), "-1e3");
200+
assert_eq!(format!("{:.0e}", -960), "-1e3");
201+
assert_eq!(format!("{:.0e}", -959), "-1e3");
202+
assert_eq!(format!("{:.0e}", -958), "-1e3");
203+
assert_eq!(format!("{:.0e}", -957), "-1e3");
204+
assert_eq!(format!("{:.0e}", -956), "-1e3");
205+
assert_eq!(format!("{:.0e}", -955), "-1e3");
206+
assert_eq!(format!("{:.0e}", -954), "-1e3");
207+
assert_eq!(format!("{:.0e}", -953), "-1e3");
208+
assert_eq!(format!("{:.0e}", -952), "-1e3");
209+
assert_eq!(format!("{:.0e}", -951), "-1e3");
210+
assert_eq!(format!("{:.0e}", -950), "-1e3");
211+
assert_eq!(format!("{:.0e}", -850), "-9e2");
212+
assert_eq!(format!("{:.0e}", -650), "-7e2");
213+
assert_eq!(format!("{:.0e}", -450), "-5e2");
214+
assert_eq!(format!("{:.0e}", -250), "-3e2");
215+
assert_eq!(format!("{:.0e}", -99), "-1e2");
216+
assert_eq!(format!("{:.0e}", -98), "-1e2");
217+
assert_eq!(format!("{:.0e}", -97), "-1e2");
218+
assert_eq!(format!("{:.0e}", -96), "-1e2");
219+
assert_eq!(format!("{:.0e}", -95), "-1e2");
220+
assert_eq!(format!("{:.0e}", -85), "-9e1");
221+
assert_eq!(format!("{:.0e}", -65), "-7e1");
222+
assert_eq!(format!("{:.0e}", -45), "-5e1");
223+
assert_eq!(format!("{:.0e}", -25), "-3e1");
224+
assert_eq!(format!("{:.0e}", 25), "3e1");
225+
assert_eq!(format!("{:.0e}", 45), "5e1");
226+
assert_eq!(format!("{:.0e}", 65), "7e1");
227+
assert_eq!(format!("{:.0e}", 85), "9e1");
228+
assert_eq!(format!("{:.0e}", 94), "9e1");
229+
assert_eq!(format!("{:.0e}", 95), "1e2");
230+
assert_eq!(format!("{:.0e}", 96), "1e2");
231+
assert_eq!(format!("{:.0e}", 97), "1e2");
232+
assert_eq!(format!("{:.0e}", 98), "1e2");
233+
assert_eq!(format!("{:.0e}", 99), "1e2");
234+
assert_eq!(format!("{:.0e}", 250), "3e2");
235+
assert_eq!(format!("{:.0e}", 450), "5e2");
236+
assert_eq!(format!("{:.0e}", 650), "7e2");
237+
assert_eq!(format!("{:.0e}", 850), "9e2");
238+
assert_eq!(format!("{:.0e}", 950), "1e3");
239+
assert_eq!(format!("{:.0e}", 951), "1e3");
240+
assert_eq!(format!("{:.0e}", 952), "1e3");
241+
assert_eq!(format!("{:.0e}", 953), "1e3");
242+
assert_eq!(format!("{:.0e}", 954), "1e3");
243+
assert_eq!(format!("{:.0e}", 955), "1e3");
244+
assert_eq!(format!("{:.0e}", 956), "1e3");
245+
assert_eq!(format!("{:.0e}", 957), "1e3");
246+
assert_eq!(format!("{:.0e}", 958), "1e3");
247+
assert_eq!(format!("{:.0e}", 959), "1e3");
248+
assert_eq!(format!("{:.0e}", 960), "1e3");
249+
assert_eq!(format!("{:.0e}", 961), "1e3");
250+
assert_eq!(format!("{:.0e}", 962), "1e3");
251+
assert_eq!(format!("{:.0e}", 963), "1e3");
252+
assert_eq!(format!("{:.0e}", 964), "1e3");
253+
assert_eq!(format!("{:.0e}", 965), "1e3");
254+
assert_eq!(format!("{:.0e}", 966), "1e3");
255+
assert_eq!(format!("{:.0e}", 967), "1e3");
256+
assert_eq!(format!("{:.0e}", 968), "1e3");
257+
assert_eq!(format!("{:.0e}", 969), "1e3");
258+
assert_eq!(format!("{:.0e}", 970), "1e3");
259+
assert_eq!(format!("{:.0e}", 971), "1e3");
260+
assert_eq!(format!("{:.0e}", 972), "1e3");
261+
assert_eq!(format!("{:.0e}", 973), "1e3");
262+
assert_eq!(format!("{:.0e}", 974), "1e3");
263+
assert_eq!(format!("{:.0e}", 975), "1e3");
264+
assert_eq!(format!("{:.0e}", 976), "1e3");
265+
assert_eq!(format!("{:.0e}", 977), "1e3");
266+
assert_eq!(format!("{:.0e}", 978), "1e3");
267+
assert_eq!(format!("{:.0e}", 979), "1e3");
268+
assert_eq!(format!("{:.0e}", 980), "1e3");
269+
assert_eq!(format!("{:.0e}", 981), "1e3");
270+
assert_eq!(format!("{:.0e}", 982), "1e3");
271+
assert_eq!(format!("{:.0e}", 983), "1e3");
272+
assert_eq!(format!("{:.0e}", 984), "1e3");
273+
assert_eq!(format!("{:.0e}", 985), "1e3");
274+
assert_eq!(format!("{:.0e}", 986), "1e3");
275+
assert_eq!(format!("{:.0e}", 987), "1e3");
276+
assert_eq!(format!("{:.0e}", 988), "1e3");
277+
assert_eq!(format!("{:.0e}", 989), "1e3");
278+
assert_eq!(format!("{:.0e}", 990), "1e3");
279+
assert_eq!(format!("{:.0e}", 991), "1e3");
280+
assert_eq!(format!("{:.0e}", 992), "1e3");
281+
assert_eq!(format!("{:.0e}", 993), "1e3");
282+
assert_eq!(format!("{:.0e}", 994), "1e3");
283+
assert_eq!(format!("{:.0e}", 995), "1e3");
284+
assert_eq!(format!("{:.0e}", 996), "1e3");
285+
assert_eq!(format!("{:.0e}", 997), "1e3");
286+
assert_eq!(format!("{:.0e}", 998), "1e3");
287+
assert_eq!(format!("{:.0e}", 999), "1e3");
288+
assert_eq!(format!("{:.1e}", -1850), "-1.9e3");
289+
assert_eq!(format!("{:.1e}", -1650), "-1.7e3");
290+
assert_eq!(format!("{:.1e}", -1450), "-1.5e3");
291+
assert_eq!(format!("{:.1e}", -1250), "-1.3e3");
292+
assert_eq!(format!("{:.1e}", -1050), "-1.1e3");
293+
assert_eq!(format!("{:.1e}", -999), "-1.0e3");
294+
assert_eq!(format!("{:.1e}", -998), "-1.0e3");
295+
assert_eq!(format!("{:.1e}", -997), "-1.0e3");
296+
assert_eq!(format!("{:.1e}", -996), "-1.0e3");
297+
assert_eq!(format!("{:.1e}", -995), "-1.0e3");
298+
assert_eq!(format!("{:.1e}", -985), "-9.9e2");
299+
assert_eq!(format!("{:.1e}", -965), "-9.7e2");
300+
assert_eq!(format!("{:.1e}", -945), "-9.5e2");
301+
assert_eq!(format!("{:.1e}", -925), "-9.3e2");
302+
assert_eq!(format!("{:.1e}", -905), "-9.1e2");
303+
assert_eq!(format!("{:.1e}", -885), "-8.9e2");
304+
assert_eq!(format!("{:.1e}", -865), "-8.7e2");
305+
assert_eq!(format!("{:.1e}", -845), "-8.5e2");
306+
assert_eq!(format!("{:.1e}", -825), "-8.3e2");
307+
assert_eq!(format!("{:.1e}", -805), "-8.1e2");
308+
assert_eq!(format!("{:.1e}", -785), "-7.9e2");
309+
assert_eq!(format!("{:.1e}", -765), "-7.7e2");
310+
assert_eq!(format!("{:.1e}", -745), "-7.5e2");
311+
assert_eq!(format!("{:.1e}", -725), "-7.3e2");
312+
assert_eq!(format!("{:.1e}", -705), "-7.1e2");
313+
assert_eq!(format!("{:.1e}", -685), "-6.9e2");
314+
assert_eq!(format!("{:.1e}", -665), "-6.7e2");
315+
assert_eq!(format!("{:.1e}", -645), "-6.5e2");
316+
assert_eq!(format!("{:.1e}", -625), "-6.3e2");
317+
assert_eq!(format!("{:.1e}", -605), "-6.1e2");
318+
assert_eq!(format!("{:.1e}", -585), "-5.9e2");
319+
assert_eq!(format!("{:.1e}", -565), "-5.7e2");
320+
assert_eq!(format!("{:.1e}", -545), "-5.5e2");
321+
assert_eq!(format!("{:.1e}", -525), "-5.3e2");
322+
assert_eq!(format!("{:.1e}", -505), "-5.1e2");
323+
assert_eq!(format!("{:.1e}", -485), "-4.9e2");
324+
assert_eq!(format!("{:.1e}", -465), "-4.7e2");
325+
assert_eq!(format!("{:.1e}", -445), "-4.5e2");
326+
assert_eq!(format!("{:.1e}", -425), "-4.3e2");
327+
assert_eq!(format!("{:.1e}", -405), "-4.1e2");
328+
assert_eq!(format!("{:.1e}", -385), "-3.9e2");
329+
assert_eq!(format!("{:.1e}", -365), "-3.7e2");
330+
assert_eq!(format!("{:.1e}", -345), "-3.5e2");
331+
assert_eq!(format!("{:.1e}", -325), "-3.3e2");
332+
assert_eq!(format!("{:.1e}", -305), "-3.1e2");
333+
assert_eq!(format!("{:.1e}", -285), "-2.9e2");
334+
assert_eq!(format!("{:.1e}", -265), "-2.7e2");
335+
assert_eq!(format!("{:.1e}", -245), "-2.5e2");
336+
assert_eq!(format!("{:.1e}", -225), "-2.3e2");
337+
assert_eq!(format!("{:.1e}", -205), "-2.1e2");
338+
assert_eq!(format!("{:.1e}", -185), "-1.9e2");
339+
assert_eq!(format!("{:.1e}", -165), "-1.7e2");
340+
assert_eq!(format!("{:.1e}", -145), "-1.5e2");
341+
assert_eq!(format!("{:.1e}", -125), "-1.3e2");
342+
assert_eq!(format!("{:.1e}", -105), "-1.1e2");
343+
assert_eq!(format!("{:.1e}", 105), "1.1e2");
344+
assert_eq!(format!("{:.1e}", 125), "1.3e2");
345+
assert_eq!(format!("{:.1e}", 145), "1.5e2");
346+
assert_eq!(format!("{:.1e}", 165), "1.7e2");
347+
assert_eq!(format!("{:.1e}", 185), "1.9e2");
348+
assert_eq!(format!("{:.1e}", 205), "2.1e2");
349+
assert_eq!(format!("{:.1e}", 225), "2.3e2");
350+
assert_eq!(format!("{:.1e}", 245), "2.5e2");
351+
assert_eq!(format!("{:.1e}", 265), "2.7e2");
352+
assert_eq!(format!("{:.1e}", 285), "2.9e2");
353+
assert_eq!(format!("{:.1e}", 305), "3.1e2");
354+
assert_eq!(format!("{:.1e}", 325), "3.3e2");
355+
assert_eq!(format!("{:.1e}", 345), "3.5e2");
356+
assert_eq!(format!("{:.1e}", 365), "3.7e2");
357+
assert_eq!(format!("{:.1e}", 385), "3.9e2");
358+
assert_eq!(format!("{:.1e}", 405), "4.1e2");
359+
assert_eq!(format!("{:.1e}", 425), "4.3e2");
360+
assert_eq!(format!("{:.1e}", 445), "4.5e2");
361+
assert_eq!(format!("{:.1e}", 465), "4.7e2");
362+
assert_eq!(format!("{:.1e}", 485), "4.9e2");
363+
assert_eq!(format!("{:.1e}", 505), "5.1e2");
364+
assert_eq!(format!("{:.1e}", 525), "5.3e2");
365+
assert_eq!(format!("{:.1e}", 545), "5.5e2");
366+
assert_eq!(format!("{:.1e}", 565), "5.7e2");
367+
assert_eq!(format!("{:.1e}", 585), "5.9e2");
368+
assert_eq!(format!("{:.1e}", 605), "6.1e2");
369+
assert_eq!(format!("{:.1e}", 625), "6.3e2");
370+
assert_eq!(format!("{:.1e}", 645), "6.5e2");
371+
assert_eq!(format!("{:.1e}", 665), "6.7e2");
372+
assert_eq!(format!("{:.1e}", 685), "6.9e2");
373+
assert_eq!(format!("{:.1e}", 705), "7.1e2");
374+
assert_eq!(format!("{:.1e}", 725), "7.3e2");
375+
assert_eq!(format!("{:.1e}", 745), "7.5e2");
376+
assert_eq!(format!("{:.1e}", 765), "7.7e2");
377+
assert_eq!(format!("{:.1e}", 785), "7.9e2");
378+
assert_eq!(format!("{:.1e}", 805), "8.1e2");
379+
assert_eq!(format!("{:.1e}", 825), "8.3e2");
380+
assert_eq!(format!("{:.1e}", 845), "8.5e2");
381+
assert_eq!(format!("{:.1e}", 865), "8.7e2");
382+
assert_eq!(format!("{:.1e}", 885), "8.9e2");
383+
assert_eq!(format!("{:.1e}", 905), "9.1e2");
384+
assert_eq!(format!("{:.1e}", 925), "9.3e2");
385+
assert_eq!(format!("{:.1e}", 945), "9.5e2");
386+
assert_eq!(format!("{:.1e}", 965), "9.7e2");
387+
assert_eq!(format!("{:.1e}", 985), "9.9e2");
388+
assert_eq!(format!("{:.1e}", 995), "1.0e3");
389+
assert_eq!(format!("{:.1e}", 996), "1.0e3");
390+
assert_eq!(format!("{:.1e}", 997), "1.0e3");
391+
assert_eq!(format!("{:.1e}", 998), "1.0e3");
392+
assert_eq!(format!("{:.1e}", 999), "1.0e3");
393+
assert_eq!(format!("{:.1e}", 1050), "1.1e3");
394+
assert_eq!(format!("{:.1e}", 1250), "1.3e3");
395+
assert_eq!(format!("{:.1e}", 1450), "1.5e3");
396+
assert_eq!(format!("{:.1e}", 1650), "1.7e3");
397+
assert_eq!(format!("{:.1e}", 1850), "1.9e3");
398+
assert_eq!(format!("{:.2e}", -1985), "-1.99e3");
399+
assert_eq!(format!("{:.2e}", -1965), "-1.97e3");
400+
assert_eq!(format!("{:.2e}", -1945), "-1.95e3");
401+
assert_eq!(format!("{:.2e}", -1925), "-1.93e3");
402+
assert_eq!(format!("{:.2e}", -1905), "-1.91e3");
403+
assert_eq!(format!("{:.2e}", -1885), "-1.89e3");
404+
assert_eq!(format!("{:.2e}", -1865), "-1.87e3");
405+
assert_eq!(format!("{:.2e}", -1845), "-1.85e3");
406+
assert_eq!(format!("{:.2e}", -1825), "-1.83e3");
407+
assert_eq!(format!("{:.2e}", -1805), "-1.81e3");
408+
assert_eq!(format!("{:.2e}", -1785), "-1.79e3");
409+
assert_eq!(format!("{:.2e}", -1765), "-1.77e3");
410+
assert_eq!(format!("{:.2e}", -1745), "-1.75e3");
411+
assert_eq!(format!("{:.2e}", -1725), "-1.73e3");
412+
assert_eq!(format!("{:.2e}", -1705), "-1.71e3");
413+
assert_eq!(format!("{:.2e}", -1685), "-1.69e3");
414+
assert_eq!(format!("{:.2e}", -1665), "-1.67e3");
415+
assert_eq!(format!("{:.2e}", -1645), "-1.65e3");
416+
assert_eq!(format!("{:.2e}", -1625), "-1.63e3");
417+
assert_eq!(format!("{:.2e}", -1605), "-1.61e3");
418+
assert_eq!(format!("{:.2e}", -1585), "-1.59e3");
419+
assert_eq!(format!("{:.2e}", -1565), "-1.57e3");
420+
assert_eq!(format!("{:.2e}", -1545), "-1.55e3");
421+
assert_eq!(format!("{:.2e}", -1525), "-1.53e3");
422+
assert_eq!(format!("{:.2e}", -1505), "-1.51e3");
423+
assert_eq!(format!("{:.2e}", -1485), "-1.49e3");
424+
assert_eq!(format!("{:.2e}", -1465), "-1.47e3");
425+
assert_eq!(format!("{:.2e}", -1445), "-1.45e3");
426+
assert_eq!(format!("{:.2e}", -1425), "-1.43e3");
427+
assert_eq!(format!("{:.2e}", -1405), "-1.41e3");
428+
assert_eq!(format!("{:.2e}", -1385), "-1.39e3");
429+
assert_eq!(format!("{:.2e}", -1365), "-1.37e3");
430+
assert_eq!(format!("{:.2e}", -1345), "-1.35e3");
431+
assert_eq!(format!("{:.2e}", -1325), "-1.33e3");
432+
assert_eq!(format!("{:.2e}", -1305), "-1.31e3");
433+
assert_eq!(format!("{:.2e}", -1285), "-1.29e3");
434+
assert_eq!(format!("{:.2e}", -1265), "-1.27e3");
435+
assert_eq!(format!("{:.2e}", -1245), "-1.25e3");
436+
assert_eq!(format!("{:.2e}", -1225), "-1.23e3");
437+
assert_eq!(format!("{:.2e}", -1205), "-1.21e3");
438+
assert_eq!(format!("{:.2e}", -1185), "-1.19e3");
439+
assert_eq!(format!("{:.2e}", -1165), "-1.17e3");
440+
assert_eq!(format!("{:.2e}", -1145), "-1.15e3");
441+
assert_eq!(format!("{:.2e}", -1125), "-1.13e3");
442+
assert_eq!(format!("{:.2e}", -1105), "-1.11e3");
443+
assert_eq!(format!("{:.2e}", -1085), "-1.09e3");
444+
assert_eq!(format!("{:.2e}", -1065), "-1.07e3");
445+
assert_eq!(format!("{:.2e}", -1045), "-1.05e3");
446+
assert_eq!(format!("{:.2e}", -1025), "-1.03e3");
447+
assert_eq!(format!("{:.2e}", -1005), "-1.01e3");
448+
assert_eq!(format!("{:.2e}", 1005), "1.01e3" );
449+
assert_eq!(format!("{:.2e}", 1025), "1.03e3" );
450+
assert_eq!(format!("{:.2e}", 1045), "1.05e3" );
451+
assert_eq!(format!("{:.2e}", 1065), "1.07e3" );
452+
assert_eq!(format!("{:.2e}", 1085), "1.09e3" );
453+
assert_eq!(format!("{:.2e}", 1105), "1.11e3" );
454+
assert_eq!(format!("{:.2e}", 1125), "1.13e3" );
455+
assert_eq!(format!("{:.2e}", 1145), "1.15e3" );
456+
assert_eq!(format!("{:.2e}", 1165), "1.17e3" );
457+
assert_eq!(format!("{:.2e}", 1185), "1.19e3" );
458+
assert_eq!(format!("{:.2e}", 1205), "1.21e3" );
459+
assert_eq!(format!("{:.2e}", 1225), "1.23e3" );
460+
assert_eq!(format!("{:.2e}", 1245), "1.25e3" );
461+
assert_eq!(format!("{:.2e}", 1265), "1.27e3" );
462+
assert_eq!(format!("{:.2e}", 1285), "1.29e3" );
463+
assert_eq!(format!("{:.2e}", 1305), "1.31e3" );
464+
assert_eq!(format!("{:.2e}", 1325), "1.33e3" );
465+
assert_eq!(format!("{:.2e}", 1345), "1.35e3" );
466+
assert_eq!(format!("{:.2e}", 1365), "1.37e3" );
467+
assert_eq!(format!("{:.2e}", 1385), "1.39e3" );
468+
assert_eq!(format!("{:.2e}", 1405), "1.41e3" );
469+
assert_eq!(format!("{:.2e}", 1425), "1.43e3" );
470+
assert_eq!(format!("{:.2e}", 1445), "1.45e3" );
471+
assert_eq!(format!("{:.2e}", 1465), "1.47e3" );
472+
assert_eq!(format!("{:.2e}", 1485), "1.49e3" );
473+
assert_eq!(format!("{:.2e}", 1505), "1.51e3" );
474+
assert_eq!(format!("{:.2e}", 1525), "1.53e3" );
475+
assert_eq!(format!("{:.2e}", 1545), "1.55e3" );
476+
assert_eq!(format!("{:.2e}", 1565), "1.57e3" );
477+
assert_eq!(format!("{:.2e}", 1585), "1.59e3" );
478+
assert_eq!(format!("{:.2e}", 1605), "1.61e3" );
479+
assert_eq!(format!("{:.2e}", 1625), "1.63e3" );
480+
assert_eq!(format!("{:.2e}", 1645), "1.65e3" );
481+
assert_eq!(format!("{:.2e}", 1665), "1.67e3" );
482+
assert_eq!(format!("{:.2e}", 1685), "1.69e3" );
483+
assert_eq!(format!("{:.2e}", 1705), "1.71e3" );
484+
assert_eq!(format!("{:.2e}", 1725), "1.73e3" );
485+
assert_eq!(format!("{:.2e}", 1745), "1.75e3" );
486+
assert_eq!(format!("{:.2e}", 1765), "1.77e3" );
487+
assert_eq!(format!("{:.2e}", 1785), "1.79e3" );
488+
assert_eq!(format!("{:.2e}", 1805), "1.81e3" );
489+
assert_eq!(format!("{:.2e}", 1825), "1.83e3" );
490+
assert_eq!(format!("{:.2e}", 1845), "1.85e3" );
491+
assert_eq!(format!("{:.2e}", 1865), "1.87e3" );
492+
assert_eq!(format!("{:.2e}", 1885), "1.89e3" );
493+
assert_eq!(format!("{:.2e}", 1905), "1.91e3" );
494+
assert_eq!(format!("{:.2e}", 1925), "1.93e3" );
495+
assert_eq!(format!("{:.2e}", 1945), "1.95e3" );
496+
assert_eq!(format!("{:.2e}", 1965), "1.97e3" );
497+
assert_eq!(format!("{:.2e}", 1985), "1.99e3" );
498+
}
499+
155500
#[test]
156501
fn test_format_int_zero() {
157502
assert_eq!(format!("{}", 0), "0");

0 commit comments

Comments
 (0)