c88250a57d
problems relating to NaNs and rounding.
685 lines
23 KiB
Plaintext
685 lines
23 KiB
Plaintext
Input: 1.23
|
|
Output: d =
|
|
1.23 = 0x3ff3ae14 7ae147ae, se =
|
|
g_fmt gives "1.23"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = 1, 3 digits:
|
|
123
|
|
nextafter(d,+Infinity) = 1.2300000000000002 = 0x3ff3ae14 7ae147af:
|
|
g_fmt gives "1.2300000000000002"
|
|
dtoa returns sign = 0, decpt = 1, 17 digits:
|
|
12300000000000002
|
|
nextafter(d,-Infinity) = 1.2299999999999998 = 0x3ff3ae14 7ae147ad:
|
|
g_fmt gives "1.2299999999999998"
|
|
dtoa returns sign = 0, decpt = 1, 17 digits:
|
|
12299999999999998
|
|
Input: 1.23e+20
|
|
Output: d =
|
|
1.23e+20 = 0x441aabdf 2145b430, se =
|
|
g_fmt gives "1.23e+20"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = 21, 3 digits:
|
|
123
|
|
nextafter(d,+Infinity) = 1.2300000000000002e+20 = 0x441aabdf 2145b431:
|
|
g_fmt gives "123000000000000020000"
|
|
dtoa returns sign = 0, decpt = 21, 17 digits:
|
|
12300000000000002
|
|
nextafter(d,-Infinity) = 1.2299999999999998e+20 = 0x441aabdf 2145b42f:
|
|
g_fmt gives "122999999999999980000"
|
|
dtoa returns sign = 0, decpt = 21, 17 digits:
|
|
12299999999999998
|
|
Input: 1.23e-20
|
|
Output: d =
|
|
1.2300000000000001e-20 = 0x3bcd0ae4 cf767531, se =
|
|
g_fmt gives "1.23e-20"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = -19, 3 digits:
|
|
123
|
|
nextafter(d,+Infinity) = 1.2300000000000002e-20 = 0x3bcd0ae4 cf767532:
|
|
g_fmt gives "1.2300000000000002e-20"
|
|
dtoa returns sign = 0, decpt = -19, 17 digits:
|
|
12300000000000002
|
|
nextafter(d,-Infinity) = 1.2299999999999999e-20 = 0x3bcd0ae4 cf767530:
|
|
g_fmt gives "1.2299999999999999e-20"
|
|
dtoa returns sign = 0, decpt = -19, 17 digits:
|
|
12299999999999999
|
|
Input: 1.23456789
|
|
Output: d =
|
|
1.2345678899999999 = 0x3ff3c0ca 4283de1b, se =
|
|
g_fmt gives "1.23456789"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = 1, 9 digits:
|
|
123456789
|
|
nextafter(d,+Infinity) = 1.2345678900000001 = 0x3ff3c0ca 4283de1c:
|
|
g_fmt gives "1.2345678900000001"
|
|
dtoa returns sign = 0, decpt = 1, 17 digits:
|
|
12345678900000001
|
|
nextafter(d,-Infinity) = 1.2345678899999997 = 0x3ff3c0ca 4283de1a:
|
|
g_fmt gives "1.2345678899999997"
|
|
dtoa returns sign = 0, decpt = 1, 17 digits:
|
|
12345678899999997
|
|
Input: 1.23456589e+20
|
|
Output: d =
|
|
1.23456589e+20 = 0x441ac537 a660b997, se =
|
|
g_fmt gives "1.23456589e+20"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = 21, 9 digits:
|
|
123456589
|
|
nextafter(d,+Infinity) = 1.2345658900000001e+20 = 0x441ac537 a660b998:
|
|
g_fmt gives "123456589000000010000"
|
|
dtoa returns sign = 0, decpt = 21, 17 digits:
|
|
12345658900000001
|
|
nextafter(d,-Infinity) = 1.2345658899999998e+20 = 0x441ac537 a660b996:
|
|
g_fmt gives "123456588999999980000"
|
|
dtoa returns sign = 0, decpt = 21, 17 digits:
|
|
12345658899999998
|
|
Input: 1.23e+30
|
|
Output: d =
|
|
1.23e+30 = 0x462f0cb0 4e8fb790, se =
|
|
g_fmt gives "1.23e+30"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = 31, 3 digits:
|
|
123
|
|
nextafter(d,+Infinity) = 1.2300000000000001e+30 = 0x462f0cb0 4e8fb791:
|
|
g_fmt gives "1.2300000000000001e+30"
|
|
dtoa returns sign = 0, decpt = 31, 17 digits:
|
|
12300000000000001
|
|
nextafter(d,-Infinity) = 1.2299999999999998e+30 = 0x462f0cb0 4e8fb78f:
|
|
g_fmt gives "1.2299999999999998e+30"
|
|
dtoa returns sign = 0, decpt = 31, 17 digits:
|
|
12299999999999998
|
|
Input: 1.23e-30
|
|
Output: d =
|
|
1.2300000000000001e-30 = 0x39b8f286 6f5010ab, se =
|
|
g_fmt gives "1.23e-30"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = -29, 3 digits:
|
|
123
|
|
nextafter(d,+Infinity) = 1.2300000000000002e-30 = 0x39b8f286 6f5010ac:
|
|
g_fmt gives "1.2300000000000002e-30"
|
|
dtoa returns sign = 0, decpt = -29, 17 digits:
|
|
12300000000000002
|
|
nextafter(d,-Infinity) = 1.2299999999999999e-30 = 0x39b8f286 6f5010aa:
|
|
g_fmt gives "1.2299999999999999e-30"
|
|
dtoa returns sign = 0, decpt = -29, 17 digits:
|
|
12299999999999999
|
|
Input: 1.23456789e-20
|
|
Output: d =
|
|
1.2345678899999999e-20 = 0x3bcd2681 471e7ada, se =
|
|
g_fmt gives "1.23456789e-20"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = -19, 9 digits:
|
|
123456789
|
|
nextafter(d,+Infinity) = 1.2345678900000001e-20 = 0x3bcd2681 471e7adb:
|
|
g_fmt gives "1.2345678900000001e-20"
|
|
dtoa returns sign = 0, decpt = -19, 17 digits:
|
|
12345678900000001
|
|
nextafter(d,-Infinity) = 1.2345678899999998e-20 = 0x3bcd2681 471e7ad9:
|
|
g_fmt gives "1.2345678899999998e-20"
|
|
dtoa returns sign = 0, decpt = -19, 17 digits:
|
|
12345678899999998
|
|
Input: 1.23456789e-30
|
|
Output: d =
|
|
1.23456789e-30 = 0x39b90a3e 33bbd995, se =
|
|
g_fmt gives "1.23456789e-30"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = -29, 9 digits:
|
|
123456789
|
|
nextafter(d,+Infinity) = 1.2345678900000002e-30 = 0x39b90a3e 33bbd996:
|
|
g_fmt gives "1.2345678900000002e-30"
|
|
dtoa returns sign = 0, decpt = -29, 17 digits:
|
|
12345678900000002
|
|
nextafter(d,-Infinity) = 1.2345678899999998e-30 = 0x39b90a3e 33bbd994:
|
|
g_fmt gives "1.2345678899999998e-30"
|
|
dtoa returns sign = 0, decpt = -29, 17 digits:
|
|
12345678899999998
|
|
Input: 1.234567890123456789
|
|
Output: d =
|
|
1.2345678901234567 = 0x3ff3c0ca 428c59fb, se =
|
|
g_fmt gives "1.2345678901234567"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = 1, 17 digits:
|
|
12345678901234567
|
|
nextafter(d,+Infinity) = 1.2345678901234569 = 0x3ff3c0ca 428c59fc:
|
|
g_fmt gives "1.234567890123457"
|
|
dtoa returns sign = 0, decpt = 1, 16 digits:
|
|
1234567890123457
|
|
nextafter(d,-Infinity) = 1.2345678901234565 = 0x3ff3c0ca 428c59fa:
|
|
g_fmt gives "1.2345678901234565"
|
|
dtoa returns sign = 0, decpt = 1, 17 digits:
|
|
12345678901234565
|
|
Input: 1.23456789012345678901234567890123456789
|
|
Output: d =
|
|
1.2345678901234567 = 0x3ff3c0ca 428c59fb, se =
|
|
g_fmt gives "1.2345678901234567"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = 1, 17 digits:
|
|
12345678901234567
|
|
nextafter(d,+Infinity) = 1.2345678901234569 = 0x3ff3c0ca 428c59fc:
|
|
g_fmt gives "1.234567890123457"
|
|
dtoa returns sign = 0, decpt = 1, 16 digits:
|
|
1234567890123457
|
|
nextafter(d,-Infinity) = 1.2345678901234565 = 0x3ff3c0ca 428c59fa:
|
|
g_fmt gives "1.2345678901234565"
|
|
dtoa returns sign = 0, decpt = 1, 17 digits:
|
|
12345678901234565
|
|
Input: 1.23e306
|
|
Output: d =
|
|
1.23e+306 = 0x7f7c0676 cd1c61f5, se =
|
|
g_fmt gives "1.23e+306"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = 307, 3 digits:
|
|
123
|
|
nextafter(d,+Infinity) = 1.2300000000000002e+306 = 0x7f7c0676 cd1c61f6:
|
|
g_fmt gives "1.2300000000000002e+306"
|
|
dtoa returns sign = 0, decpt = 307, 17 digits:
|
|
12300000000000002
|
|
nextafter(d,-Infinity) = 1.2299999999999999e+306 = 0x7f7c0676 cd1c61f4:
|
|
g_fmt gives "1.2299999999999999e+306"
|
|
dtoa returns sign = 0, decpt = 307, 17 digits:
|
|
12299999999999999
|
|
Input: 1.23e-306
|
|
Output: d =
|
|
1.23e-306 = 0x6ba3b8 5da396e8, se =
|
|
g_fmt gives "1.23e-306"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = -305, 3 digits:
|
|
123
|
|
nextafter(d,+Infinity) = 1.2300000000000002e-306 = 0x6ba3b8 5da396e9:
|
|
g_fmt gives "1.2300000000000002e-306"
|
|
dtoa returns sign = 0, decpt = -305, 17 digits:
|
|
12300000000000002
|
|
nextafter(d,-Infinity) = 1.2299999999999999e-306 = 0x6ba3b8 5da396e7:
|
|
g_fmt gives "1.2299999999999999e-306"
|
|
dtoa returns sign = 0, decpt = -305, 17 digits:
|
|
12299999999999999
|
|
Input: 1.23e-320
|
|
Output: d =
|
|
1.2302234581447039e-320 = 0x0 9ba, se =
|
|
g_fmt gives "1.23e-320"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = -319, 3 digits:
|
|
123
|
|
nextafter(d,+Infinity) = 1.2307175237905451e-320 = 0x0 9bb:
|
|
g_fmt gives "1.2307e-320"
|
|
dtoa returns sign = 0, decpt = -319, 5 digits:
|
|
12307
|
|
nextafter(d,-Infinity) = 1.2297293924988626e-320 = 0x0 9b9:
|
|
g_fmt gives "1.2297e-320"
|
|
dtoa returns sign = 0, decpt = -319, 5 digits:
|
|
12297
|
|
Input: 1.23e-20
|
|
Output: d =
|
|
1.2300000000000001e-20 = 0x3bcd0ae4 cf767531, se =
|
|
g_fmt gives "1.23e-20"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = -19, 3 digits:
|
|
123
|
|
nextafter(d,+Infinity) = 1.2300000000000002e-20 = 0x3bcd0ae4 cf767532:
|
|
g_fmt gives "1.2300000000000002e-20"
|
|
dtoa returns sign = 0, decpt = -19, 17 digits:
|
|
12300000000000002
|
|
nextafter(d,-Infinity) = 1.2299999999999999e-20 = 0x3bcd0ae4 cf767530:
|
|
g_fmt gives "1.2299999999999999e-20"
|
|
dtoa returns sign = 0, decpt = -19, 17 digits:
|
|
12299999999999999
|
|
Input: 1.23456789e307
|
|
Output: d =
|
|
1.23456789e+307 = 0x7fb194b1 4bdaecdc, se =
|
|
g_fmt gives "1.23456789e+307"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = 308, 9 digits:
|
|
123456789
|
|
nextafter(d,+Infinity) = 1.2345678900000003e+307 = 0x7fb194b1 4bdaecdd:
|
|
g_fmt gives "1.2345678900000003e+307"
|
|
dtoa returns sign = 0, decpt = 308, 17 digits:
|
|
12345678900000003
|
|
nextafter(d,-Infinity) = 1.2345678899999998e+307 = 0x7fb194b1 4bdaecdb:
|
|
g_fmt gives "1.2345678899999998e+307"
|
|
dtoa returns sign = 0, decpt = 308, 17 digits:
|
|
12345678899999998
|
|
Input: 1.23456589e-307
|
|
Output: d =
|
|
1.2345658899999999e-307 = 0x363196 bb9845fa, se =
|
|
g_fmt gives "1.23456589e-307"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = -306, 9 digits:
|
|
123456589
|
|
nextafter(d,+Infinity) = 1.2345658900000001e-307 = 0x363196 bb9845fb:
|
|
g_fmt gives "1.2345658900000001e-307"
|
|
dtoa returns sign = 0, decpt = -306, 17 digits:
|
|
12345658900000001
|
|
nextafter(d,-Infinity) = 1.2345658899999997e-307 = 0x363196 bb9845f9:
|
|
g_fmt gives "1.2345658899999997e-307"
|
|
dtoa returns sign = 0, decpt = -306, 17 digits:
|
|
12345658899999997
|
|
Input: 1.234567890123456789
|
|
Output: d =
|
|
1.2345678901234567 = 0x3ff3c0ca 428c59fb, se =
|
|
g_fmt gives "1.2345678901234567"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = 1, 17 digits:
|
|
12345678901234567
|
|
nextafter(d,+Infinity) = 1.2345678901234569 = 0x3ff3c0ca 428c59fc:
|
|
g_fmt gives "1.234567890123457"
|
|
dtoa returns sign = 0, decpt = 1, 16 digits:
|
|
1234567890123457
|
|
nextafter(d,-Infinity) = 1.2345678901234565 = 0x3ff3c0ca 428c59fa:
|
|
g_fmt gives "1.2345678901234565"
|
|
dtoa returns sign = 0, decpt = 1, 17 digits:
|
|
12345678901234565
|
|
Input: 1.234567890123456789e301
|
|
Output: d =
|
|
1.2345678901234568e+301 = 0x7e726f51 75f56413, se =
|
|
g_fmt gives "1.2345678901234568e+301"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = 302, 17 digits:
|
|
12345678901234568
|
|
nextafter(d,+Infinity) = 1.234567890123457e+301 = 0x7e726f51 75f56414:
|
|
g_fmt gives "1.234567890123457e+301"
|
|
dtoa returns sign = 0, decpt = 302, 16 digits:
|
|
1234567890123457
|
|
nextafter(d,-Infinity) = 1.2345678901234565e+301 = 0x7e726f51 75f56412:
|
|
g_fmt gives "1.2345678901234565e+301"
|
|
dtoa returns sign = 0, decpt = 302, 17 digits:
|
|
12345678901234565
|
|
Input: 1.234567890123456789e-301
|
|
Output: d =
|
|
1.2345678901234567e-301 = 0x1752a64 e34ba0d3, se =
|
|
g_fmt gives "1.2345678901234567e-301"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = -300, 17 digits:
|
|
12345678901234567
|
|
nextafter(d,+Infinity) = 1.2345678901234569e-301 = 0x1752a64 e34ba0d4:
|
|
g_fmt gives "1.234567890123457e-301"
|
|
dtoa returns sign = 0, decpt = -300, 16 digits:
|
|
1234567890123457
|
|
nextafter(d,-Infinity) = 1.2345678901234565e-301 = 0x1752a64 e34ba0d2:
|
|
g_fmt gives "1.2345678901234565e-301"
|
|
dtoa returns sign = 0, decpt = -300, 17 digits:
|
|
12345678901234565
|
|
Input: 1.234567890123456789e-321
|
|
Output: d =
|
|
1.2351641146031164e-321 = 0x0 fa, se =
|
|
g_fmt gives "1.235e-321"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = -320, 4 digits:
|
|
1235
|
|
nextafter(d,+Infinity) = 1.2401047710615288e-321 = 0x0 fb:
|
|
g_fmt gives "1.24e-321"
|
|
dtoa returns sign = 0, decpt = -320, 3 digits:
|
|
124
|
|
nextafter(d,-Infinity) = 1.2302234581447039e-321 = 0x0 f9:
|
|
g_fmt gives "1.23e-321"
|
|
dtoa returns sign = 0, decpt = -320, 3 digits:
|
|
123
|
|
Input: 1e23
|
|
Output: d =
|
|
9.9999999999999992e+22 = 0x44b52d02 c7e14af6, se =
|
|
g_fmt gives "1e+23"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = 24, 1 digits:
|
|
1
|
|
nextafter(d,+Infinity) = 1.0000000000000001e+23 = 0x44b52d02 c7e14af7:
|
|
g_fmt gives "1.0000000000000001e+23"
|
|
dtoa returns sign = 0, decpt = 24, 17 digits:
|
|
10000000000000001
|
|
nextafter(d,-Infinity) = 9.9999999999999975e+22 = 0x44b52d02 c7e14af5:
|
|
g_fmt gives "9.999999999999997e+22"
|
|
dtoa returns sign = 0, decpt = 23, 16 digits:
|
|
9999999999999997
|
|
Input: 1e310
|
|
Output: d =
|
|
Infinity = 0x7ff00000 0, se =
|
|
g_fmt gives "Infinity"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = 9999, 8 digits:
|
|
Infinity
|
|
Input: 9.0259718793241475e-277
|
|
Output: d =
|
|
9.0259718793241479e-277 = 0x6a00000 0, se =
|
|
g_fmt gives "9.025971879324148e-277"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = -276, 16 digits:
|
|
9025971879324148
|
|
nextafter(d,+Infinity) = 9.0259718793241499e-277 = 0x6a00000 1:
|
|
g_fmt gives "9.02597187932415e-277"
|
|
dtoa returns sign = 0, decpt = -276, 15 digits:
|
|
902597187932415
|
|
Input: 9.025971879324147880346310405869e-277
|
|
Output: d =
|
|
9.0259718793241479e-277 = 0x6a00000 0, se =
|
|
g_fmt gives "9.025971879324148e-277"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = -276, 16 digits:
|
|
9025971879324148
|
|
nextafter(d,+Infinity) = 9.0259718793241499e-277 = 0x6a00000 1:
|
|
g_fmt gives "9.02597187932415e-277"
|
|
dtoa returns sign = 0, decpt = -276, 15 digits:
|
|
902597187932415
|
|
Input: 9.025971879324147880346310405868e-277
|
|
Output: d =
|
|
9.0259718793241479e-277 = 0x6a00000 0, se =
|
|
g_fmt gives "9.025971879324148e-277"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = -276, 16 digits:
|
|
9025971879324148
|
|
nextafter(d,+Infinity) = 9.0259718793241499e-277 = 0x6a00000 1:
|
|
g_fmt gives "9.02597187932415e-277"
|
|
dtoa returns sign = 0, decpt = -276, 15 digits:
|
|
902597187932415
|
|
Input: 2.2250738585072014e-308
|
|
Output: d =
|
|
2.2250738585072014e-308 = 0x100000 0, se =
|
|
g_fmt gives "2.2250738585072014e-308"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = -307, 17 digits:
|
|
22250738585072014
|
|
nextafter(d,+Infinity) = 2.2250738585072019e-308 = 0x100000 1:
|
|
g_fmt gives "2.225073858507202e-308"
|
|
dtoa returns sign = 0, decpt = -307, 16 digits:
|
|
2225073858507202
|
|
Input: 2.2250738585072013e-308
|
|
Output: d =
|
|
2.2250738585072014e-308 = 0x100000 0, se =
|
|
g_fmt gives "2.2250738585072014e-308"
|
|
dtoa(mode = 0, ndigits = 17):
|
|
dtoa returns sign = 0, decpt = -307, 17 digits:
|
|
22250738585072014
|
|
nextafter(d,+Infinity) = 2.2250738585072019e-308 = 0x100000 1:
|
|
g_fmt gives "2.225073858507202e-308"
|
|
dtoa returns sign = 0, decpt = -307, 16 digits:
|
|
2225073858507202
|
|
Input: 1.23:2 6
|
|
Output: d =
|
|
1.23 = 0x3ff3ae14 7ae147ae, se = :2 6
|
|
g_fmt gives "1.23"
|
|
dtoa(mode = 2, ndigits = 6):
|
|
dtoa returns sign = 0, decpt = 1, 3 digits:
|
|
123
|
|
nextafter(d,+Infinity) = 1.2300000000000002 = 0x3ff3ae14 7ae147af:
|
|
g_fmt gives "1.2300000000000002"
|
|
dtoa returns sign = 0, decpt = 1, 3 digits:
|
|
123
|
|
nextafter(d,-Infinity) = 1.2299999999999998 = 0x3ff3ae14 7ae147ad:
|
|
g_fmt gives "1.2299999999999998"
|
|
dtoa returns sign = 0, decpt = 1, 3 digits:
|
|
123
|
|
Input: 1.23:4 6
|
|
Output: d =
|
|
1.23 = 0x3ff3ae14 7ae147ae, se = :4 6
|
|
g_fmt gives "1.23"
|
|
dtoa(mode = 4, ndigits = 6):
|
|
dtoa returns sign = 0, decpt = 1, 3 digits:
|
|
123
|
|
nextafter(d,+Infinity) = 1.2300000000000002 = 0x3ff3ae14 7ae147af:
|
|
g_fmt gives "1.2300000000000002"
|
|
dtoa returns sign = 0, decpt = 1, 3 digits:
|
|
123
|
|
nextafter(d,-Infinity) = 1.2299999999999998 = 0x3ff3ae14 7ae147ad:
|
|
g_fmt gives "1.2299999999999998"
|
|
dtoa returns sign = 0, decpt = 1, 3 digits:
|
|
123
|
|
Input: 1.23e+20:2 6
|
|
Output: d =
|
|
1.23e+20 = 0x441aabdf 2145b430, se = :2 6
|
|
g_fmt gives "1.23e+20"
|
|
dtoa(mode = 2, ndigits = 6):
|
|
dtoa returns sign = 0, decpt = 21, 3 digits:
|
|
123
|
|
nextafter(d,+Infinity) = 1.2300000000000002e+20 = 0x441aabdf 2145b431:
|
|
g_fmt gives "123000000000000020000"
|
|
dtoa returns sign = 0, decpt = 21, 3 digits:
|
|
123
|
|
nextafter(d,-Infinity) = 1.2299999999999998e+20 = 0x441aabdf 2145b42f:
|
|
g_fmt gives "122999999999999980000"
|
|
dtoa returns sign = 0, decpt = 21, 3 digits:
|
|
123
|
|
Input: 1.23e+20:4 6
|
|
Output: d =
|
|
1.23e+20 = 0x441aabdf 2145b430, se = :4 6
|
|
g_fmt gives "1.23e+20"
|
|
dtoa(mode = 4, ndigits = 6):
|
|
dtoa returns sign = 0, decpt = 21, 3 digits:
|
|
123
|
|
nextafter(d,+Infinity) = 1.2300000000000002e+20 = 0x441aabdf 2145b431:
|
|
g_fmt gives "123000000000000020000"
|
|
dtoa returns sign = 0, decpt = 21, 3 digits:
|
|
123
|
|
nextafter(d,-Infinity) = 1.2299999999999998e+20 = 0x441aabdf 2145b42f:
|
|
g_fmt gives "122999999999999980000"
|
|
dtoa returns sign = 0, decpt = 21, 3 digits:
|
|
123
|
|
Input: 1.23e-20:2 6
|
|
Output: d =
|
|
1.2300000000000001e-20 = 0x3bcd0ae4 cf767531, se = :2 6
|
|
g_fmt gives "1.23e-20"
|
|
dtoa(mode = 2, ndigits = 6):
|
|
dtoa returns sign = 0, decpt = -19, 3 digits:
|
|
123
|
|
nextafter(d,+Infinity) = 1.2300000000000002e-20 = 0x3bcd0ae4 cf767532:
|
|
g_fmt gives "1.2300000000000002e-20"
|
|
dtoa returns sign = 0, decpt = -19, 3 digits:
|
|
123
|
|
nextafter(d,-Infinity) = 1.2299999999999999e-20 = 0x3bcd0ae4 cf767530:
|
|
g_fmt gives "1.2299999999999999e-20"
|
|
dtoa returns sign = 0, decpt = -19, 3 digits:
|
|
123
|
|
Input: 1.23e-20:4 6
|
|
Output: d =
|
|
1.2300000000000001e-20 = 0x3bcd0ae4 cf767531, se = :4 6
|
|
g_fmt gives "1.23e-20"
|
|
dtoa(mode = 4, ndigits = 6):
|
|
dtoa returns sign = 0, decpt = -19, 3 digits:
|
|
123
|
|
nextafter(d,+Infinity) = 1.2300000000000002e-20 = 0x3bcd0ae4 cf767532:
|
|
g_fmt gives "1.2300000000000002e-20"
|
|
dtoa returns sign = 0, decpt = -19, 3 digits:
|
|
123
|
|
nextafter(d,-Infinity) = 1.2299999999999999e-20 = 0x3bcd0ae4 cf767530:
|
|
g_fmt gives "1.2299999999999999e-20"
|
|
dtoa returns sign = 0, decpt = -19, 3 digits:
|
|
123
|
|
Input: 1.23456789:2 6
|
|
Output: d =
|
|
1.2345678899999999 = 0x3ff3c0ca 4283de1b, se = :2 6
|
|
g_fmt gives "1.23456789"
|
|
dtoa(mode = 2, ndigits = 6):
|
|
dtoa returns sign = 0, decpt = 1, 6 digits:
|
|
123457
|
|
nextafter(d,+Infinity) = 1.2345678900000001 = 0x3ff3c0ca 4283de1c:
|
|
g_fmt gives "1.2345678900000001"
|
|
dtoa returns sign = 0, decpt = 1, 6 digits:
|
|
123457
|
|
nextafter(d,-Infinity) = 1.2345678899999997 = 0x3ff3c0ca 4283de1a:
|
|
g_fmt gives "1.2345678899999997"
|
|
dtoa returns sign = 0, decpt = 1, 6 digits:
|
|
123457
|
|
Input: 1.23456789:4 6
|
|
Output: d =
|
|
1.2345678899999999 = 0x3ff3c0ca 4283de1b, se = :4 6
|
|
g_fmt gives "1.23456789"
|
|
dtoa(mode = 4, ndigits = 6):
|
|
dtoa returns sign = 0, decpt = 1, 6 digits:
|
|
123457
|
|
nextafter(d,+Infinity) = 1.2345678900000001 = 0x3ff3c0ca 4283de1c:
|
|
g_fmt gives "1.2345678900000001"
|
|
dtoa returns sign = 0, decpt = 1, 6 digits:
|
|
123457
|
|
nextafter(d,-Infinity) = 1.2345678899999997 = 0x3ff3c0ca 4283de1a:
|
|
g_fmt gives "1.2345678899999997"
|
|
dtoa returns sign = 0, decpt = 1, 6 digits:
|
|
123457
|
|
Input: 1.23456589e+20:2 6
|
|
Output: d =
|
|
1.23456589e+20 = 0x441ac537 a660b997, se = :2 6
|
|
g_fmt gives "1.23456589e+20"
|
|
dtoa(mode = 2, ndigits = 6):
|
|
dtoa returns sign = 0, decpt = 21, 6 digits:
|
|
123457
|
|
nextafter(d,+Infinity) = 1.2345658900000001e+20 = 0x441ac537 a660b998:
|
|
g_fmt gives "123456589000000010000"
|
|
dtoa returns sign = 0, decpt = 21, 6 digits:
|
|
123457
|
|
nextafter(d,-Infinity) = 1.2345658899999998e+20 = 0x441ac537 a660b996:
|
|
g_fmt gives "123456588999999980000"
|
|
dtoa returns sign = 0, decpt = 21, 6 digits:
|
|
123457
|
|
Input: 1.23456589e+20:4 6
|
|
Output: d =
|
|
1.23456589e+20 = 0x441ac537 a660b997, se = :4 6
|
|
g_fmt gives "1.23456589e+20"
|
|
dtoa(mode = 4, ndigits = 6):
|
|
dtoa returns sign = 0, decpt = 21, 6 digits:
|
|
123457
|
|
nextafter(d,+Infinity) = 1.2345658900000001e+20 = 0x441ac537 a660b998:
|
|
g_fmt gives "123456589000000010000"
|
|
dtoa returns sign = 0, decpt = 21, 6 digits:
|
|
123457
|
|
nextafter(d,-Infinity) = 1.2345658899999998e+20 = 0x441ac537 a660b996:
|
|
g_fmt gives "123456588999999980000"
|
|
dtoa returns sign = 0, decpt = 21, 6 digits:
|
|
123457
|
|
Input: 1.23456789e-20:2 6
|
|
Output: d =
|
|
1.2345678899999999e-20 = 0x3bcd2681 471e7ada, se = :2 6
|
|
g_fmt gives "1.23456789e-20"
|
|
dtoa(mode = 2, ndigits = 6):
|
|
dtoa returns sign = 0, decpt = -19, 6 digits:
|
|
123457
|
|
nextafter(d,+Infinity) = 1.2345678900000001e-20 = 0x3bcd2681 471e7adb:
|
|
g_fmt gives "1.2345678900000001e-20"
|
|
dtoa returns sign = 0, decpt = -19, 6 digits:
|
|
123457
|
|
nextafter(d,-Infinity) = 1.2345678899999998e-20 = 0x3bcd2681 471e7ad9:
|
|
g_fmt gives "1.2345678899999998e-20"
|
|
dtoa returns sign = 0, decpt = -19, 6 digits:
|
|
123457
|
|
Input: 1.23456789e-20:4 6
|
|
Output: d =
|
|
1.2345678899999999e-20 = 0x3bcd2681 471e7ada, se = :4 6
|
|
g_fmt gives "1.23456789e-20"
|
|
dtoa(mode = 4, ndigits = 6):
|
|
dtoa returns sign = 0, decpt = -19, 6 digits:
|
|
123457
|
|
nextafter(d,+Infinity) = 1.2345678900000001e-20 = 0x3bcd2681 471e7adb:
|
|
g_fmt gives "1.2345678900000001e-20"
|
|
dtoa returns sign = 0, decpt = -19, 6 digits:
|
|
123457
|
|
nextafter(d,-Infinity) = 1.2345678899999998e-20 = 0x3bcd2681 471e7ad9:
|
|
g_fmt gives "1.2345678899999998e-20"
|
|
dtoa returns sign = 0, decpt = -19, 6 digits:
|
|
123457
|
|
Input: 1234565:2 6
|
|
Output: d =
|
|
1234565 = 0x4132d685 0, se = :2 6
|
|
g_fmt gives "1234565"
|
|
dtoa(mode = 2, ndigits = 6):
|
|
dtoa returns sign = 0, decpt = 7, 6 digits:
|
|
123456
|
|
nextafter(d,+Infinity) = 1234565.0000000002 = 0x4132d685 1:
|
|
g_fmt gives "1234565.0000000002"
|
|
dtoa returns sign = 0, decpt = 7, 6 digits:
|
|
123457
|
|
Input: 1234565:4 6
|
|
Output: d =
|
|
1234565 = 0x4132d685 0, se = :4 6
|
|
g_fmt gives "1234565"
|
|
dtoa(mode = 4, ndigits = 6):
|
|
dtoa returns sign = 0, decpt = 7, 6 digits:
|
|
123456
|
|
nextafter(d,+Infinity) = 1234565.0000000002 = 0x4132d685 1:
|
|
g_fmt gives "1234565.0000000002"
|
|
dtoa returns sign = 0, decpt = 7, 6 digits:
|
|
123457
|
|
Input: 1.234565:2 6
|
|
Output: d =
|
|
1.2345649999999999 = 0x3ff3c0c7 3abc9470, se = :2 6
|
|
g_fmt gives "1.234565"
|
|
dtoa(mode = 2, ndigits = 6):
|
|
dtoa returns sign = 0, decpt = 1, 6 digits:
|
|
123456
|
|
nextafter(d,+Infinity) = 1.2345650000000001 = 0x3ff3c0c7 3abc9471:
|
|
g_fmt gives "1.2345650000000001"
|
|
dtoa returns sign = 0, decpt = 1, 6 digits:
|
|
123457
|
|
nextafter(d,-Infinity) = 1.2345649999999997 = 0x3ff3c0c7 3abc946f:
|
|
g_fmt gives "1.2345649999999997"
|
|
dtoa returns sign = 0, decpt = 1, 6 digits:
|
|
123456
|
|
Input: 1.234565:4 6
|
|
Output: d =
|
|
1.2345649999999999 = 0x3ff3c0c7 3abc9470, se = :4 6
|
|
g_fmt gives "1.234565"
|
|
dtoa(mode = 4, ndigits = 6):
|
|
dtoa returns sign = 0, decpt = 1, 6 digits:
|
|
123456
|
|
nextafter(d,+Infinity) = 1.2345650000000001 = 0x3ff3c0c7 3abc9471:
|
|
g_fmt gives "1.2345650000000001"
|
|
dtoa returns sign = 0, decpt = 1, 6 digits:
|
|
123457
|
|
nextafter(d,-Infinity) = 1.2345649999999997 = 0x3ff3c0c7 3abc946f:
|
|
g_fmt gives "1.2345649999999997"
|
|
dtoa returns sign = 0, decpt = 1, 6 digits:
|
|
123456
|
|
Input: 1.234565e+20:2 6
|
|
Output: d =
|
|
1.234565e+20 = 0x441ac536 6299040d, se = :2 6
|
|
g_fmt gives "1.234565e+20"
|
|
dtoa(mode = 2, ndigits = 6):
|
|
dtoa returns sign = 0, decpt = 21, 6 digits:
|
|
123456
|
|
nextafter(d,+Infinity) = 1.2345650000000002e+20 = 0x441ac536 6299040e:
|
|
g_fmt gives "123456500000000020000"
|
|
dtoa returns sign = 0, decpt = 21, 6 digits:
|
|
123457
|
|
nextafter(d,-Infinity) = 1.2345649999999998e+20 = 0x441ac536 6299040c:
|
|
g_fmt gives "123456499999999980000"
|
|
dtoa returns sign = 0, decpt = 21, 6 digits:
|
|
123456
|
|
Input: 1.234565e+20:4 6
|
|
Output: d =
|
|
1.234565e+20 = 0x441ac536 6299040d, se = :4 6
|
|
g_fmt gives "1.234565e+20"
|
|
dtoa(mode = 4, ndigits = 6):
|
|
dtoa returns sign = 0, decpt = 21, 6 digits:
|
|
123456
|
|
nextafter(d,+Infinity) = 1.2345650000000002e+20 = 0x441ac536 6299040e:
|
|
g_fmt gives "123456500000000020000"
|
|
dtoa returns sign = 0, decpt = 21, 6 digits:
|
|
123457
|
|
nextafter(d,-Infinity) = 1.2345649999999998e+20 = 0x441ac536 6299040c:
|
|
g_fmt gives "123456499999999980000"
|
|
dtoa returns sign = 0, decpt = 21, 6 digits:
|
|
123456
|
|
Input: 1.234565e-20:2 6
|
|
Output: d =
|
|
1.234565e-20 = 0x3bcd267c ce45a93f, se = :2 6
|
|
g_fmt gives "1.234565e-20"
|
|
dtoa(mode = 2, ndigits = 6):
|
|
dtoa returns sign = 0, decpt = -19, 6 digits:
|
|
123456
|
|
nextafter(d,+Infinity) = 1.2345650000000001e-20 = 0x3bcd267c ce45a940:
|
|
g_fmt gives "1.2345650000000001e-20"
|
|
dtoa returns sign = 0, decpt = -19, 6 digits:
|
|
123457
|
|
nextafter(d,-Infinity) = 1.2345649999999998e-20 = 0x3bcd267c ce45a93e:
|
|
g_fmt gives "1.2345649999999998e-20"
|
|
dtoa returns sign = 0, decpt = -19, 6 digits:
|
|
123456
|
|
Input: 1.234565e-20:4 6
|
|
Output: d =
|
|
1.234565e-20 = 0x3bcd267c ce45a93f, se = :4 6
|
|
g_fmt gives "1.234565e-20"
|
|
dtoa(mode = 4, ndigits = 6):
|
|
dtoa returns sign = 0, decpt = -19, 6 digits:
|
|
123456
|
|
nextafter(d,+Infinity) = 1.2345650000000001e-20 = 0x3bcd267c ce45a940:
|
|
g_fmt gives "1.2345650000000001e-20"
|
|
dtoa returns sign = 0, decpt = -19, 6 digits:
|
|
123457
|
|
nextafter(d,-Infinity) = 1.2345649999999998e-20 = 0x3bcd267c ce45a93e:
|
|
g_fmt gives "1.2345649999999998e-20"
|
|
dtoa returns sign = 0, decpt = -19, 6 digits:
|
|
123456
|