1 | -- 'f' code formatting, with explicit precision (>= 0). Output always
|
---|
2 | -- has the given number of places after the point; zeros are added if
|
---|
3 | -- necessary to make this true.
|
---|
4 |
|
---|
5 | -- zeros
|
---|
6 | %.0f 0 -> 0
|
---|
7 | %.1f 0 -> 0.0
|
---|
8 | %.2f 0 -> 0.00
|
---|
9 | %.3f 0 -> 0.000
|
---|
10 | %.50f 0 -> 0.00000000000000000000000000000000000000000000000000
|
---|
11 |
|
---|
12 | -- precision 0; result should never include a .
|
---|
13 | %.0f 1.5 -> 2
|
---|
14 | %.0f 2.5 -> 2
|
---|
15 | %.0f 3.5 -> 4
|
---|
16 | %.0f 0.0 -> 0
|
---|
17 | %.0f 0.1 -> 0
|
---|
18 | %.0f 0.001 -> 0
|
---|
19 | %.0f 10.0 -> 10
|
---|
20 | %.0f 10.1 -> 10
|
---|
21 | %.0f 10.01 -> 10
|
---|
22 | %.0f 123.456 -> 123
|
---|
23 | %.0f 1234.56 -> 1235
|
---|
24 | %.0f 1e49 -> 9999999999999999464902769475481793196872414789632
|
---|
25 | %.0f 9.9999999999999987e+49 -> 99999999999999986860582406952576489172979654066176
|
---|
26 | %.0f 1e50 -> 100000000000000007629769841091887003294964970946560
|
---|
27 |
|
---|
28 | -- precision 1
|
---|
29 | %.1f 0.0001 -> 0.0
|
---|
30 | %.1f 0.001 -> 0.0
|
---|
31 | %.1f 0.01 -> 0.0
|
---|
32 | %.1f 0.04 -> 0.0
|
---|
33 | %.1f 0.06 -> 0.1
|
---|
34 | %.1f 0.25 -> 0.2
|
---|
35 | %.1f 0.75 -> 0.8
|
---|
36 | %.1f 1.4 -> 1.4
|
---|
37 | %.1f 1.5 -> 1.5
|
---|
38 | %.1f 10.0 -> 10.0
|
---|
39 | %.1f 1000.03 -> 1000.0
|
---|
40 | %.1f 1234.5678 -> 1234.6
|
---|
41 | %.1f 1234.7499 -> 1234.7
|
---|
42 | %.1f 1234.75 -> 1234.8
|
---|
43 |
|
---|
44 | -- precision 2
|
---|
45 | %.2f 0.0001 -> 0.00
|
---|
46 | %.2f 0.001 -> 0.00
|
---|
47 | %.2f 0.004999 -> 0.00
|
---|
48 | %.2f 0.005001 -> 0.01
|
---|
49 | %.2f 0.01 -> 0.01
|
---|
50 | %.2f 0.125 -> 0.12
|
---|
51 | %.2f 0.375 -> 0.38
|
---|
52 | %.2f 1234500 -> 1234500.00
|
---|
53 | %.2f 1234560 -> 1234560.00
|
---|
54 | %.2f 1234567 -> 1234567.00
|
---|
55 | %.2f 1234567.8 -> 1234567.80
|
---|
56 | %.2f 1234567.89 -> 1234567.89
|
---|
57 | %.2f 1234567.891 -> 1234567.89
|
---|
58 | %.2f 1234567.8912 -> 1234567.89
|
---|
59 |
|
---|
60 | -- alternate form always includes a decimal point. This only
|
---|
61 | -- makes a difference when the precision is 0.
|
---|
62 | %#.0f 0 -> 0.
|
---|
63 | %#.1f 0 -> 0.0
|
---|
64 | %#.0f 1.5 -> 2.
|
---|
65 | %#.0f 2.5 -> 2.
|
---|
66 | %#.0f 10.1 -> 10.
|
---|
67 | %#.0f 1234.56 -> 1235.
|
---|
68 | %#.1f 1.4 -> 1.4
|
---|
69 | %#.2f 0.375 -> 0.38
|
---|
70 |
|
---|
71 | -- if precision is omitted it defaults to 6
|
---|
72 | %f 0 -> 0.000000
|
---|
73 | %f 1230000 -> 1230000.000000
|
---|
74 | %f 1234567 -> 1234567.000000
|
---|
75 | %f 123.4567 -> 123.456700
|
---|
76 | %f 1.23456789 -> 1.234568
|
---|
77 | %f 0.00012 -> 0.000120
|
---|
78 | %f 0.000123 -> 0.000123
|
---|
79 | %f 0.00012345 -> 0.000123
|
---|
80 | %f 0.000001 -> 0.000001
|
---|
81 | %f 0.0000005001 -> 0.000001
|
---|
82 | %f 0.0000004999 -> 0.000000
|
---|
83 |
|
---|
84 | -- nans and infinities
|
---|
85 | %f nan -> nan
|
---|
86 | %f inf -> inf
|
---|
87 | %f -infinity -> -inf
|
---|
88 | %F nan -> NAN
|
---|
89 | %F infinity -> INF
|
---|
90 | %F -inf -> -INF
|
---|
91 |
|
---|
92 | -- 'e' code formatting with explicit precision (>= 0). Output should
|
---|
93 | -- always have exactly the number of places after the point that were
|
---|
94 | -- requested.
|
---|
95 |
|
---|
96 | -- zeros
|
---|
97 | %.0e 0 -> 0e+00
|
---|
98 | %.1e 0 -> 0.0e+00
|
---|
99 | %.2e 0 -> 0.00e+00
|
---|
100 | %.10e 0 -> 0.0000000000e+00
|
---|
101 | %.50e 0 -> 0.00000000000000000000000000000000000000000000000000e+00
|
---|
102 |
|
---|
103 | -- precision 0. no decimal point in the output
|
---|
104 | %.0e 0.01 -> 1e-02
|
---|
105 | %.0e 0.1 -> 1e-01
|
---|
106 | %.0e 1 -> 1e+00
|
---|
107 | %.0e 10 -> 1e+01
|
---|
108 | %.0e 100 -> 1e+02
|
---|
109 | %.0e 0.012 -> 1e-02
|
---|
110 | %.0e 0.12 -> 1e-01
|
---|
111 | %.0e 1.2 -> 1e+00
|
---|
112 | %.0e 12 -> 1e+01
|
---|
113 | %.0e 120 -> 1e+02
|
---|
114 | %.0e 123.456 -> 1e+02
|
---|
115 | %.0e 0.000123456 -> 1e-04
|
---|
116 | %.0e 123456000 -> 1e+08
|
---|
117 | %.0e 0.5 -> 5e-01
|
---|
118 | %.0e 1.4 -> 1e+00
|
---|
119 | %.0e 1.5 -> 2e+00
|
---|
120 | %.0e 1.6 -> 2e+00
|
---|
121 | %.0e 2.4999999 -> 2e+00
|
---|
122 | %.0e 2.5 -> 2e+00
|
---|
123 | %.0e 2.5000001 -> 3e+00
|
---|
124 | %.0e 3.499999999999 -> 3e+00
|
---|
125 | %.0e 3.5 -> 4e+00
|
---|
126 | %.0e 4.5 -> 4e+00
|
---|
127 | %.0e 5.5 -> 6e+00
|
---|
128 | %.0e 6.5 -> 6e+00
|
---|
129 | %.0e 7.5 -> 8e+00
|
---|
130 | %.0e 8.5 -> 8e+00
|
---|
131 | %.0e 9.4999 -> 9e+00
|
---|
132 | %.0e 9.5 -> 1e+01
|
---|
133 | %.0e 10.5 -> 1e+01
|
---|
134 | %.0e 14.999 -> 1e+01
|
---|
135 | %.0e 15 -> 2e+01
|
---|
136 |
|
---|
137 | -- precision 1
|
---|
138 | %.1e 0.0001 -> 1.0e-04
|
---|
139 | %.1e 0.001 -> 1.0e-03
|
---|
140 | %.1e 0.01 -> 1.0e-02
|
---|
141 | %.1e 0.1 -> 1.0e-01
|
---|
142 | %.1e 1 -> 1.0e+00
|
---|
143 | %.1e 10 -> 1.0e+01
|
---|
144 | %.1e 100 -> 1.0e+02
|
---|
145 | %.1e 120 -> 1.2e+02
|
---|
146 | %.1e 123 -> 1.2e+02
|
---|
147 | %.1e 123.4 -> 1.2e+02
|
---|
148 |
|
---|
149 | -- precision 2
|
---|
150 | %.2e 0.00013 -> 1.30e-04
|
---|
151 | %.2e 0.000135 -> 1.35e-04
|
---|
152 | %.2e 0.0001357 -> 1.36e-04
|
---|
153 | %.2e 0.0001 -> 1.00e-04
|
---|
154 | %.2e 0.001 -> 1.00e-03
|
---|
155 | %.2e 0.01 -> 1.00e-02
|
---|
156 | %.2e 0.1 -> 1.00e-01
|
---|
157 | %.2e 1 -> 1.00e+00
|
---|
158 | %.2e 10 -> 1.00e+01
|
---|
159 | %.2e 100 -> 1.00e+02
|
---|
160 | %.2e 1000 -> 1.00e+03
|
---|
161 | %.2e 1500 -> 1.50e+03
|
---|
162 | %.2e 1590 -> 1.59e+03
|
---|
163 | %.2e 1598 -> 1.60e+03
|
---|
164 | %.2e 1598.7 -> 1.60e+03
|
---|
165 | %.2e 1598.76 -> 1.60e+03
|
---|
166 | %.2e 9999 -> 1.00e+04
|
---|
167 |
|
---|
168 | -- omitted precision defaults to 6
|
---|
169 | %e 0 -> 0.000000e+00
|
---|
170 | %e 165 -> 1.650000e+02
|
---|
171 | %e 1234567 -> 1.234567e+06
|
---|
172 | %e 12345678 -> 1.234568e+07
|
---|
173 | %e 1.1 -> 1.100000e+00
|
---|
174 |
|
---|
175 | -- alternate form always contains a decimal point. This only makes
|
---|
176 | -- a difference when precision is 0.
|
---|
177 |
|
---|
178 | %#.0e 0.01 -> 1.e-02
|
---|
179 | %#.0e 0.1 -> 1.e-01
|
---|
180 | %#.0e 1 -> 1.e+00
|
---|
181 | %#.0e 10 -> 1.e+01
|
---|
182 | %#.0e 100 -> 1.e+02
|
---|
183 | %#.0e 0.012 -> 1.e-02
|
---|
184 | %#.0e 0.12 -> 1.e-01
|
---|
185 | %#.0e 1.2 -> 1.e+00
|
---|
186 | %#.0e 12 -> 1.e+01
|
---|
187 | %#.0e 120 -> 1.e+02
|
---|
188 | %#.0e 123.456 -> 1.e+02
|
---|
189 | %#.0e 0.000123456 -> 1.e-04
|
---|
190 | %#.0e 123456000 -> 1.e+08
|
---|
191 | %#.0e 0.5 -> 5.e-01
|
---|
192 | %#.0e 1.4 -> 1.e+00
|
---|
193 | %#.0e 1.5 -> 2.e+00
|
---|
194 | %#.0e 1.6 -> 2.e+00
|
---|
195 | %#.0e 2.4999999 -> 2.e+00
|
---|
196 | %#.0e 2.5 -> 2.e+00
|
---|
197 | %#.0e 2.5000001 -> 3.e+00
|
---|
198 | %#.0e 3.499999999999 -> 3.e+00
|
---|
199 | %#.0e 3.5 -> 4.e+00
|
---|
200 | %#.0e 4.5 -> 4.e+00
|
---|
201 | %#.0e 5.5 -> 6.e+00
|
---|
202 | %#.0e 6.5 -> 6.e+00
|
---|
203 | %#.0e 7.5 -> 8.e+00
|
---|
204 | %#.0e 8.5 -> 8.e+00
|
---|
205 | %#.0e 9.4999 -> 9.e+00
|
---|
206 | %#.0e 9.5 -> 1.e+01
|
---|
207 | %#.0e 10.5 -> 1.e+01
|
---|
208 | %#.0e 14.999 -> 1.e+01
|
---|
209 | %#.0e 15 -> 2.e+01
|
---|
210 | %#.1e 123.4 -> 1.2e+02
|
---|
211 | %#.2e 0.0001357 -> 1.36e-04
|
---|
212 |
|
---|
213 | -- nans and infinities
|
---|
214 | %e nan -> nan
|
---|
215 | %e inf -> inf
|
---|
216 | %e -infinity -> -inf
|
---|
217 | %E nan -> NAN
|
---|
218 | %E infinity -> INF
|
---|
219 | %E -inf -> -INF
|
---|
220 |
|
---|
221 | -- 'g' code formatting.
|
---|
222 |
|
---|
223 | -- zeros
|
---|
224 | %.0g 0 -> 0
|
---|
225 | %.1g 0 -> 0
|
---|
226 | %.2g 0 -> 0
|
---|
227 | %.3g 0 -> 0
|
---|
228 | %.4g 0 -> 0
|
---|
229 | %.10g 0 -> 0
|
---|
230 | %.50g 0 -> 0
|
---|
231 | %.100g 0 -> 0
|
---|
232 |
|
---|
233 | -- precision 0 doesn't make a lot of sense for the 'g' code (what does
|
---|
234 | -- it mean to have no significant digits?); in practice, it's interpreted
|
---|
235 | -- as identical to precision 1
|
---|
236 | %.0g 1000 -> 1e+03
|
---|
237 | %.0g 100 -> 1e+02
|
---|
238 | %.0g 10 -> 1e+01
|
---|
239 | %.0g 1 -> 1
|
---|
240 | %.0g 0.1 -> 0.1
|
---|
241 | %.0g 0.01 -> 0.01
|
---|
242 | %.0g 1e-3 -> 0.001
|
---|
243 | %.0g 1e-4 -> 0.0001
|
---|
244 | %.0g 1e-5 -> 1e-05
|
---|
245 | %.0g 1e-6 -> 1e-06
|
---|
246 | %.0g 12 -> 1e+01
|
---|
247 | %.0g 120 -> 1e+02
|
---|
248 | %.0g 1.2 -> 1
|
---|
249 | %.0g 0.12 -> 0.1
|
---|
250 | %.0g 0.012 -> 0.01
|
---|
251 | %.0g 0.0012 -> 0.001
|
---|
252 | %.0g 0.00012 -> 0.0001
|
---|
253 | %.0g 0.000012 -> 1e-05
|
---|
254 | %.0g 0.0000012 -> 1e-06
|
---|
255 |
|
---|
256 | -- precision 1 identical to precision 0
|
---|
257 | %.1g 1000 -> 1e+03
|
---|
258 | %.1g 100 -> 1e+02
|
---|
259 | %.1g 10 -> 1e+01
|
---|
260 | %.1g 1 -> 1
|
---|
261 | %.1g 0.1 -> 0.1
|
---|
262 | %.1g 0.01 -> 0.01
|
---|
263 | %.1g 1e-3 -> 0.001
|
---|
264 | %.1g 1e-4 -> 0.0001
|
---|
265 | %.1g 1e-5 -> 1e-05
|
---|
266 | %.1g 1e-6 -> 1e-06
|
---|
267 | %.1g 12 -> 1e+01
|
---|
268 | %.1g 120 -> 1e+02
|
---|
269 | %.1g 1.2 -> 1
|
---|
270 | %.1g 0.12 -> 0.1
|
---|
271 | %.1g 0.012 -> 0.01
|
---|
272 | %.1g 0.0012 -> 0.001
|
---|
273 | %.1g 0.00012 -> 0.0001
|
---|
274 | %.1g 0.000012 -> 1e-05
|
---|
275 | %.1g 0.0000012 -> 1e-06
|
---|
276 |
|
---|
277 | -- precision 2
|
---|
278 | %.2g 1000 -> 1e+03
|
---|
279 | %.2g 100 -> 1e+02
|
---|
280 | %.2g 10 -> 10
|
---|
281 | %.2g 1 -> 1
|
---|
282 | %.2g 0.1 -> 0.1
|
---|
283 | %.2g 0.01 -> 0.01
|
---|
284 | %.2g 0.001 -> 0.001
|
---|
285 | %.2g 1e-4 -> 0.0001
|
---|
286 | %.2g 1e-5 -> 1e-05
|
---|
287 | %.2g 1e-6 -> 1e-06
|
---|
288 | %.2g 1234 -> 1.2e+03
|
---|
289 | %.2g 123 -> 1.2e+02
|
---|
290 | %.2g 12.3 -> 12
|
---|
291 | %.2g 1.23 -> 1.2
|
---|
292 | %.2g 0.123 -> 0.12
|
---|
293 | %.2g 0.0123 -> 0.012
|
---|
294 | %.2g 0.00123 -> 0.0012
|
---|
295 | %.2g 0.000123 -> 0.00012
|
---|
296 | %.2g 0.0000123 -> 1.2e-05
|
---|
297 |
|
---|
298 | -- alternate g formatting: always include decimal point and
|
---|
299 | -- exactly <precision> significant digits.
|
---|
300 | %#.0g 0 -> 0.
|
---|
301 | %#.1g 0 -> 0.
|
---|
302 | %#.2g 0 -> 0.0
|
---|
303 | %#.3g 0 -> 0.00
|
---|
304 | %#.4g 0 -> 0.000
|
---|
305 |
|
---|
306 | %#.0g 0.2 -> 0.2
|
---|
307 | %#.1g 0.2 -> 0.2
|
---|
308 | %#.2g 0.2 -> 0.20
|
---|
309 | %#.3g 0.2 -> 0.200
|
---|
310 | %#.4g 0.2 -> 0.2000
|
---|
311 | %#.10g 0.2 -> 0.2000000000
|
---|
312 |
|
---|
313 | %#.0g 2 -> 2.
|
---|
314 | %#.1g 2 -> 2.
|
---|
315 | %#.2g 2 -> 2.0
|
---|
316 | %#.3g 2 -> 2.00
|
---|
317 | %#.4g 2 -> 2.000
|
---|
318 |
|
---|
319 | %#.0g 20 -> 2.e+01
|
---|
320 | %#.1g 20 -> 2.e+01
|
---|
321 | %#.2g 20 -> 20.
|
---|
322 | %#.3g 20 -> 20.0
|
---|
323 | %#.4g 20 -> 20.00
|
---|
324 |
|
---|
325 | %#.0g 234.56 -> 2.e+02
|
---|
326 | %#.1g 234.56 -> 2.e+02
|
---|
327 | %#.2g 234.56 -> 2.3e+02
|
---|
328 | %#.3g 234.56 -> 235.
|
---|
329 | %#.4g 234.56 -> 234.6
|
---|
330 | %#.5g 234.56 -> 234.56
|
---|
331 | %#.6g 234.56 -> 234.560
|
---|
332 |
|
---|
333 | -- nans and infinities
|
---|
334 | %g nan -> nan
|
---|
335 | %g inf -> inf
|
---|
336 | %g -infinity -> -inf
|
---|
337 | %G nan -> NAN
|
---|
338 | %G infinity -> INF
|
---|
339 | %G -inf -> -INF
|
---|
340 |
|
---|
341 | -- for repr formatting see the separate test_short_repr test in
|
---|
342 | -- test_float.py. Not all platforms use short repr for floats.
|
---|
343 |
|
---|
344 | -- str formatting. Result always includes decimal point and at
|
---|
345 | -- least one digit after the point, or an exponent.
|
---|
346 | %s 0 -> 0.0
|
---|
347 | %s 1 -> 1.0
|
---|
348 |
|
---|
349 | %s 0.01 -> 0.01
|
---|
350 | %s 0.02 -> 0.02
|
---|
351 | %s 0.03 -> 0.03
|
---|
352 | %s 0.04 -> 0.04
|
---|
353 | %s 0.05 -> 0.05
|
---|
354 |
|
---|
355 | -- str truncates to 12 significant digits
|
---|
356 | %s 1.234123412341 -> 1.23412341234
|
---|
357 | %s 1.23412341234 -> 1.23412341234
|
---|
358 | %s 1.2341234123 -> 1.2341234123
|
---|
359 |
|
---|
360 | -- values >= 1e11 get an exponent
|
---|
361 | %s 10 -> 10.0
|
---|
362 | %s 100 -> 100.0
|
---|
363 | %s 1e10 -> 10000000000.0
|
---|
364 | %s 9.999e10 -> 99990000000.0
|
---|
365 | %s 99999999999 -> 99999999999.0
|
---|
366 | %s 99999999999.9 -> 99999999999.9
|
---|
367 | %s 99999999999.99 -> 1e+11
|
---|
368 | %s 1e11 -> 1e+11
|
---|
369 | %s 1e12 -> 1e+12
|
---|
370 |
|
---|
371 | -- as do values < 1e-4
|
---|
372 | %s 1e-3 -> 0.001
|
---|
373 | %s 1.001e-4 -> 0.0001001
|
---|
374 | %s 1.000000000001e-4 -> 0.0001
|
---|
375 | %s 1.00000000001e-4 -> 0.000100000000001
|
---|
376 | %s 1.0000000001e-4 -> 0.00010000000001
|
---|
377 | %s 1e-4 -> 0.0001
|
---|
378 | %s 0.999999999999e-4 -> 9.99999999999e-05
|
---|
379 | %s 0.999e-4 -> 9.99e-05
|
---|
380 | %s 1e-5 -> 1e-05
|
---|