cc36ccd13b
strings and floating point.
987 lines
28 KiB
Plaintext
987 lines
28 KiB
Plaintext
|
|
Input: 1.23
|
|
strtod consumes 4 bytes and returns 17 with f = 1.23 = #3ff3ae14 7ae147ae
|
|
g_dfmt(0) gives 4 bytes: "1.23"
|
|
|
|
strtoId returns 17, consuming 4 bytes.
|
|
fI[0] = #3ff3ae14 7ae147ae = 1.23
|
|
fI[1] = #3ff3ae14 7ae147af = 1.2300000000000002
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.23e+20
|
|
strtod consumes 8 bytes and returns 1 with f = 1.23e+20 = #441aabdf 2145b430
|
|
g_dfmt(0) gives 8 bytes: "1.23e+20"
|
|
|
|
strtoId returns 1, consuming 8 bytes.
|
|
fI[0] == fI[1] == strtod
|
|
|
|
|
|
Input: 1.23e-20
|
|
strtod consumes 8 bytes and returns 33 with f = 1.2300000000000001e-20 = #3bcd0ae4 cf767531
|
|
g_dfmt(0) gives 8 bytes: "1.23e-20"
|
|
|
|
strtoId returns 33, consuming 8 bytes.
|
|
fI[0] = #3bcd0ae4 cf767530 = 1.2299999999999999e-20
|
|
fI[1] = #3bcd0ae4 cf767531 = 1.2300000000000001e-20
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.23456789
|
|
strtod consumes 10 bytes and returns 17 with f = 1.2345678899999999 = #3ff3c0ca 4283de1b
|
|
g_dfmt(0) gives 10 bytes: "1.23456789"
|
|
|
|
strtoId returns 17, consuming 10 bytes.
|
|
fI[0] = #3ff3c0ca 4283de1b = 1.2345678899999999
|
|
fI[1] = #3ff3c0ca 4283de1c = 1.2345678900000001
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.23456589e+20
|
|
strtod consumes 14 bytes and returns 17 with f = 1.23456589e+20 = #441ac537 a660b997
|
|
g_dfmt(0) gives 14 bytes: "1.23456589e+20"
|
|
|
|
strtoId returns 17, consuming 14 bytes.
|
|
fI[0] = #441ac537 a660b997 = 1.23456589e+20
|
|
fI[1] = #441ac537 a660b998 = 1.2345658900000001e+20
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.23e+30
|
|
strtod consumes 8 bytes and returns 17 with f = 1.23e+30 = #462f0cb0 4e8fb790
|
|
g_dfmt(0) gives 8 bytes: "1.23e+30"
|
|
|
|
strtoId returns 17, consuming 8 bytes.
|
|
fI[0] = #462f0cb0 4e8fb790 = 1.23e+30
|
|
fI[1] = #462f0cb0 4e8fb791 = 1.2300000000000001e+30
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.23e-30
|
|
strtod consumes 8 bytes and returns 33 with f = 1.2300000000000001e-30 = #39b8f286 6f5010ab
|
|
g_dfmt(0) gives 8 bytes: "1.23e-30"
|
|
|
|
strtoId returns 33, consuming 8 bytes.
|
|
fI[0] = #39b8f286 6f5010aa = 1.2299999999999999e-30
|
|
fI[1] = #39b8f286 6f5010ab = 1.2300000000000001e-30
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.23456789e-20
|
|
strtod consumes 14 bytes and returns 17 with f = 1.2345678899999999e-20 = #3bcd2681 471e7ada
|
|
g_dfmt(0) gives 14 bytes: "1.23456789e-20"
|
|
|
|
strtoId returns 17, consuming 14 bytes.
|
|
fI[0] = #3bcd2681 471e7ada = 1.2345678899999999e-20
|
|
fI[1] = #3bcd2681 471e7adb = 1.2345678900000001e-20
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.23456789e-30
|
|
strtod consumes 14 bytes and returns 17 with f = 1.23456789e-30 = #39b90a3e 33bbd995
|
|
g_dfmt(0) gives 14 bytes: "1.23456789e-30"
|
|
|
|
strtoId returns 17, consuming 14 bytes.
|
|
fI[0] = #39b90a3e 33bbd995 = 1.23456789e-30
|
|
fI[1] = #39b90a3e 33bbd996 = 1.2345678900000002e-30
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.234567890123456789
|
|
strtod consumes 20 bytes and returns 17 with f = 1.2345678901234567 = #3ff3c0ca 428c59fb
|
|
g_dfmt(0) gives 18 bytes: "1.2345678901234567"
|
|
|
|
strtoId returns 17, consuming 20 bytes.
|
|
fI[0] = #3ff3c0ca 428c59fb = 1.2345678901234567
|
|
fI[1] = #3ff3c0ca 428c59fc = 1.2345678901234569
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.23456789012345678901234567890123456789
|
|
strtod consumes 40 bytes and returns 17 with f = 1.2345678901234567 = #3ff3c0ca 428c59fb
|
|
g_dfmt(0) gives 18 bytes: "1.2345678901234567"
|
|
|
|
strtoId returns 17, consuming 40 bytes.
|
|
fI[0] = #3ff3c0ca 428c59fb = 1.2345678901234567
|
|
fI[1] = #3ff3c0ca 428c59fc = 1.2345678901234569
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.23e306
|
|
strtod consumes 8 bytes and returns 33 with f = 1.23e+306 = #7f7c0676 cd1c61f5
|
|
g_dfmt(0) gives 9 bytes: "1.23e+306"
|
|
|
|
strtoId returns 33, consuming 8 bytes.
|
|
fI[0] = #7f7c0676 cd1c61f4 = 1.2299999999999999e+306
|
|
fI[1] = #7f7c0676 cd1c61f5 = 1.23e+306
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.23e-306
|
|
strtod consumes 9 bytes and returns 33 with f = 1.23e-306 = #6ba3b8 5da396e8
|
|
g_dfmt(0) gives 9 bytes: "1.23e-306"
|
|
|
|
strtoId returns 33, consuming 9 bytes.
|
|
fI[0] = #6ba3b8 5da396e7 = 1.2299999999999999e-306
|
|
fI[1] = #6ba3b8 5da396e8 = 1.23e-306
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.23e-320
|
|
strtod consumes 9 bytes and returns 98 with f = 1.2302234581447039e-320 = #0 9ba
|
|
g_dfmt(0) gives 9 bytes: "1.23e-320"
|
|
|
|
strtoId returns 98, consuming 9 bytes.
|
|
fI[0] = #0 9b9 = 1.2297293924988626e-320
|
|
fI[1] = #0 9ba = 1.2302234581447039e-320
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.23e-20
|
|
strtod consumes 8 bytes and returns 33 with f = 1.2300000000000001e-20 = #3bcd0ae4 cf767531
|
|
g_dfmt(0) gives 8 bytes: "1.23e-20"
|
|
|
|
strtoId returns 33, consuming 8 bytes.
|
|
fI[0] = #3bcd0ae4 cf767530 = 1.2299999999999999e-20
|
|
fI[1] = #3bcd0ae4 cf767531 = 1.2300000000000001e-20
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.23456789e307
|
|
strtod consumes 14 bytes and returns 33 with f = 1.23456789e+307 = #7fb194b1 4bdaecdc
|
|
g_dfmt(0) gives 15 bytes: "1.23456789e+307"
|
|
|
|
strtoId returns 33, consuming 14 bytes.
|
|
fI[0] = #7fb194b1 4bdaecdb = 1.2345678899999998e+307
|
|
fI[1] = #7fb194b1 4bdaecdc = 1.23456789e+307
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.23456589e-307
|
|
strtod consumes 15 bytes and returns 17 with f = 1.2345658899999999e-307 = #363196 bb9845fa
|
|
g_dfmt(0) gives 15 bytes: "1.23456589e-307"
|
|
|
|
strtoId returns 17, consuming 15 bytes.
|
|
fI[0] = #363196 bb9845fa = 1.2345658899999999e-307
|
|
fI[1] = #363196 bb9845fb = 1.2345658900000001e-307
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.234567890123456789
|
|
strtod consumes 20 bytes and returns 17 with f = 1.2345678901234567 = #3ff3c0ca 428c59fb
|
|
g_dfmt(0) gives 18 bytes: "1.2345678901234567"
|
|
|
|
strtoId returns 17, consuming 20 bytes.
|
|
fI[0] = #3ff3c0ca 428c59fb = 1.2345678901234567
|
|
fI[1] = #3ff3c0ca 428c59fc = 1.2345678901234569
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.234567890123456789e301
|
|
strtod consumes 24 bytes and returns 17 with f = 1.2345678901234568e+301 = #7e726f51 75f56413
|
|
g_dfmt(0) gives 23 bytes: "1.2345678901234568e+301"
|
|
|
|
strtoId returns 17, consuming 24 bytes.
|
|
fI[0] = #7e726f51 75f56413 = 1.2345678901234568e+301
|
|
fI[1] = #7e726f51 75f56414 = 1.234567890123457e+301
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.234567890123456789e-301
|
|
strtod consumes 25 bytes and returns 17 with f = 1.2345678901234567e-301 = #1752a64 e34ba0d3
|
|
g_dfmt(0) gives 23 bytes: "1.2345678901234567e-301"
|
|
|
|
strtoId returns 17, consuming 25 bytes.
|
|
fI[0] = #1752a64 e34ba0d3 = 1.2345678901234567e-301
|
|
fI[1] = #1752a64 e34ba0d4 = 1.2345678901234569e-301
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.234567890123456789e-321
|
|
strtod consumes 25 bytes and returns 98 with f = 1.2351641146031164e-321 = #0 fa
|
|
g_dfmt(0) gives 10 bytes: "1.235e-321"
|
|
|
|
strtoId returns 98, consuming 25 bytes.
|
|
fI[0] = #0 f9 = 1.2302234581447039e-321
|
|
fI[1] = #0 fa = 1.2351641146031164e-321
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1e23
|
|
strtod consumes 4 bytes and returns 17 with f = 9.9999999999999992e+22 = #44b52d02 c7e14af6
|
|
g_dfmt(0) gives 5 bytes: "1e+23"
|
|
|
|
strtoId returns 17, consuming 4 bytes.
|
|
fI[0] = #44b52d02 c7e14af6 = 9.9999999999999992e+22
|
|
fI[1] = #44b52d02 c7e14af7 = 1.0000000000000001e+23
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1e310
|
|
strtod consumes 5 bytes and returns 163 with f = Infinity = #7ff00000 0
|
|
g_dfmt(0) gives 8 bytes: "Infinity"
|
|
|
|
strtoId returns 163, consuming 5 bytes.
|
|
fI[0] = #7fefffff ffffffff = 1.7976931348623157e+308
|
|
fI[1] = #7ff00000 0 = Infinity
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 9.0259718793241475e-277
|
|
strtod consumes 23 bytes and returns 33 with f = 9.0259718793241479e-277 = #6a00000 0
|
|
g_dfmt(0) gives 22 bytes: "9.025971879324148e-277"
|
|
|
|
strtoId returns 33, consuming 23 bytes.
|
|
fI[0] = #69fffff ffffffff = 9.0259718793241469e-277
|
|
fI[1] = #6a00000 0 = 9.0259718793241479e-277
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 9.025971879324147880346310405869e-277
|
|
strtod consumes 37 bytes and returns 17 with f = 9.0259718793241479e-277 = #6a00000 0
|
|
g_dfmt(0) gives 22 bytes: "9.025971879324148e-277"
|
|
|
|
strtoId returns 17, consuming 37 bytes.
|
|
fI[0] = #6a00000 0 = 9.0259718793241479e-277
|
|
fI[1] = #6a00000 1 = 9.0259718793241499e-277
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 9.025971879324147880346310405868e-277
|
|
strtod consumes 37 bytes and returns 33 with f = 9.0259718793241479e-277 = #6a00000 0
|
|
g_dfmt(0) gives 22 bytes: "9.025971879324148e-277"
|
|
|
|
strtoId returns 33, consuming 37 bytes.
|
|
fI[0] = #69fffff ffffffff = 9.0259718793241469e-277
|
|
fI[1] = #6a00000 0 = 9.0259718793241479e-277
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 2.2250738585072014e-308
|
|
strtod consumes 23 bytes and returns 17 with f = 2.2250738585072014e-308 = #100000 0
|
|
g_dfmt(0) gives 23 bytes: "2.2250738585072014e-308"
|
|
|
|
strtoId returns 17, consuming 23 bytes.
|
|
fI[0] = #100000 0 = 2.2250738585072014e-308
|
|
fI[1] = #100000 1 = 2.2250738585072019e-308
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 2.2250738585072013e-308
|
|
strtod consumes 23 bytes and returns 33 with f = 2.2250738585072014e-308 = #100000 0
|
|
g_dfmt(0) gives 23 bytes: "2.2250738585072014e-308"
|
|
|
|
strtoId returns 33, consuming 23 bytes.
|
|
fI[0] = #fffff ffffffff = 2.2250738585072009e-308
|
|
fI[1] = #100000 0 = 2.2250738585072014e-308
|
|
fI[1] == strtod
|
|
|
|
Rounding mode for strtor... changed from 1 (nearest) to 0 (toward zero)
|
|
|
|
Input: 1.1
|
|
strtod consumes 3 bytes and returns 17 with f = 1.0999999999999999 = #3ff19999 99999999
|
|
g_dfmt(0) gives 18 bytes: "1.0999999999999999"
|
|
|
|
strtoId returns 33, consuming 3 bytes.
|
|
fI[0] = #3ff19999 99999999 = 1.0999999999999999
|
|
fI[1] = #3ff19999 9999999a = 1.1000000000000001
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.1
|
|
strtod consumes 4 bytes and returns 25 with f = -1.0999999999999999 = #bff19999 99999999
|
|
g_dfmt(0) gives 19 bytes: "-1.0999999999999999"
|
|
|
|
strtoId returns 41, consuming 4 bytes.
|
|
fI[0] = #bff19999 9999999a = -1.1000000000000001
|
|
fI[1] = #bff19999 99999999 = -1.0999999999999999
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.2
|
|
strtod consumes 3 bytes and returns 17 with f = 1.2 = #3ff33333 33333333
|
|
g_dfmt(0) gives 3 bytes: "1.2"
|
|
|
|
strtoId returns 17, consuming 3 bytes.
|
|
fI[0] = #3ff33333 33333333 = 1.2
|
|
fI[1] = #3ff33333 33333334 = 1.2000000000000002
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.2
|
|
strtod consumes 4 bytes and returns 25 with f = -1.2 = #bff33333 33333333
|
|
g_dfmt(0) gives 4 bytes: "-1.2"
|
|
|
|
strtoId returns 25, consuming 4 bytes.
|
|
fI[0] = #bff33333 33333334 = -1.2000000000000002
|
|
fI[1] = #bff33333 33333333 = -1.2
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.3
|
|
strtod consumes 3 bytes and returns 17 with f = 1.2999999999999998 = #3ff4cccc cccccccc
|
|
g_dfmt(0) gives 18 bytes: "1.2999999999999998"
|
|
|
|
strtoId returns 33, consuming 3 bytes.
|
|
fI[0] = #3ff4cccc cccccccc = 1.2999999999999998
|
|
fI[1] = #3ff4cccc cccccccd = 1.3
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.3
|
|
strtod consumes 4 bytes and returns 25 with f = -1.2999999999999998 = #bff4cccc cccccccc
|
|
g_dfmt(0) gives 19 bytes: "-1.2999999999999998"
|
|
|
|
strtoId returns 41, consuming 4 bytes.
|
|
fI[0] = #bff4cccc cccccccd = -1.3
|
|
fI[1] = #bff4cccc cccccccc = -1.2999999999999998
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.4
|
|
strtod consumes 3 bytes and returns 17 with f = 1.3999999999999999 = #3ff66666 66666666
|
|
g_dfmt(0) gives 3 bytes: "1.4"
|
|
|
|
strtoId returns 17, consuming 3 bytes.
|
|
fI[0] = #3ff66666 66666666 = 1.3999999999999999
|
|
fI[1] = #3ff66666 66666667 = 1.4000000000000001
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.4
|
|
strtod consumes 4 bytes and returns 25 with f = -1.3999999999999999 = #bff66666 66666666
|
|
g_dfmt(0) gives 4 bytes: "-1.4"
|
|
|
|
strtoId returns 25, consuming 4 bytes.
|
|
fI[0] = #bff66666 66666667 = -1.4000000000000001
|
|
fI[1] = #bff66666 66666666 = -1.3999999999999999
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.5
|
|
strtod consumes 3 bytes and returns 1 with f = 1.5 = #3ff80000 0
|
|
g_dfmt(0) gives 3 bytes: "1.5"
|
|
|
|
strtoId returns 1, consuming 3 bytes.
|
|
fI[0] == fI[1] == strtod
|
|
|
|
|
|
Input: -1.5
|
|
strtod consumes 4 bytes and returns 9 with f = -1.5 = #bff80000 0
|
|
g_dfmt(0) gives 4 bytes: "-1.5"
|
|
|
|
strtoId returns 9, consuming 4 bytes.
|
|
fI[0] == fI[1] == strtod
|
|
|
|
|
|
Input: 1.6
|
|
strtod consumes 3 bytes and returns 17 with f = 1.5999999999999999 = #3ff99999 99999999
|
|
g_dfmt(0) gives 18 bytes: "1.5999999999999999"
|
|
|
|
strtoId returns 33, consuming 3 bytes.
|
|
fI[0] = #3ff99999 99999999 = 1.5999999999999999
|
|
fI[1] = #3ff99999 9999999a = 1.6000000000000001
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.6
|
|
strtod consumes 4 bytes and returns 25 with f = -1.5999999999999999 = #bff99999 99999999
|
|
g_dfmt(0) gives 19 bytes: "-1.5999999999999999"
|
|
|
|
strtoId returns 41, consuming 4 bytes.
|
|
fI[0] = #bff99999 9999999a = -1.6000000000000001
|
|
fI[1] = #bff99999 99999999 = -1.5999999999999999
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.7
|
|
strtod consumes 3 bytes and returns 17 with f = 1.7 = #3ffb3333 33333333
|
|
g_dfmt(0) gives 3 bytes: "1.7"
|
|
|
|
strtoId returns 17, consuming 3 bytes.
|
|
fI[0] = #3ffb3333 33333333 = 1.7
|
|
fI[1] = #3ffb3333 33333334 = 1.7000000000000002
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.7
|
|
strtod consumes 4 bytes and returns 25 with f = -1.7 = #bffb3333 33333333
|
|
g_dfmt(0) gives 4 bytes: "-1.7"
|
|
|
|
strtoId returns 25, consuming 4 bytes.
|
|
fI[0] = #bffb3333 33333334 = -1.7000000000000002
|
|
fI[1] = #bffb3333 33333333 = -1.7
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.8
|
|
strtod consumes 3 bytes and returns 17 with f = 1.7999999999999998 = #3ffccccc cccccccc
|
|
g_dfmt(0) gives 18 bytes: "1.7999999999999998"
|
|
|
|
strtoId returns 33, consuming 3 bytes.
|
|
fI[0] = #3ffccccc cccccccc = 1.7999999999999998
|
|
fI[1] = #3ffccccc cccccccd = 1.8
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.8
|
|
strtod consumes 4 bytes and returns 25 with f = -1.7999999999999998 = #bffccccc cccccccc
|
|
g_dfmt(0) gives 19 bytes: "-1.7999999999999998"
|
|
|
|
strtoId returns 41, consuming 4 bytes.
|
|
fI[0] = #bffccccc cccccccd = -1.8
|
|
fI[1] = #bffccccc cccccccc = -1.7999999999999998
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.9
|
|
strtod consumes 3 bytes and returns 17 with f = 1.8999999999999999 = #3ffe6666 66666666
|
|
g_dfmt(0) gives 3 bytes: "1.9"
|
|
|
|
strtoId returns 17, consuming 3 bytes.
|
|
fI[0] = #3ffe6666 66666666 = 1.8999999999999999
|
|
fI[1] = #3ffe6666 66666667 = 1.9000000000000001
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.9
|
|
strtod consumes 4 bytes and returns 25 with f = -1.8999999999999999 = #bffe6666 66666666
|
|
g_dfmt(0) gives 4 bytes: "-1.9"
|
|
|
|
strtoId returns 25, consuming 4 bytes.
|
|
fI[0] = #bffe6666 66666667 = -1.9000000000000001
|
|
fI[1] = #bffe6666 66666666 = -1.8999999999999999
|
|
fI[1] == strtod
|
|
|
|
Rounding mode for strtor... changed from 0 (toward zero) to 1 (nearest)
|
|
|
|
Input: 1.1
|
|
strtod consumes 3 bytes and returns 33 with f = 1.1000000000000001 = #3ff19999 9999999a
|
|
g_dfmt(0) gives 3 bytes: "1.1"
|
|
|
|
strtoId returns 33, consuming 3 bytes.
|
|
fI[0] = #3ff19999 99999999 = 1.0999999999999999
|
|
fI[1] = #3ff19999 9999999a = 1.1000000000000001
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: -1.1
|
|
strtod consumes 4 bytes and returns 41 with f = -1.1000000000000001 = #bff19999 9999999a
|
|
g_dfmt(0) gives 4 bytes: "-1.1"
|
|
|
|
strtoId returns 41, consuming 4 bytes.
|
|
fI[0] = #bff19999 9999999a = -1.1000000000000001
|
|
fI[1] = #bff19999 99999999 = -1.0999999999999999
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.2
|
|
strtod consumes 3 bytes and returns 17 with f = 1.2 = #3ff33333 33333333
|
|
g_dfmt(0) gives 3 bytes: "1.2"
|
|
|
|
strtoId returns 17, consuming 3 bytes.
|
|
fI[0] = #3ff33333 33333333 = 1.2
|
|
fI[1] = #3ff33333 33333334 = 1.2000000000000002
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.2
|
|
strtod consumes 4 bytes and returns 25 with f = -1.2 = #bff33333 33333333
|
|
g_dfmt(0) gives 4 bytes: "-1.2"
|
|
|
|
strtoId returns 25, consuming 4 bytes.
|
|
fI[0] = #bff33333 33333334 = -1.2000000000000002
|
|
fI[1] = #bff33333 33333333 = -1.2
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.3
|
|
strtod consumes 3 bytes and returns 33 with f = 1.3 = #3ff4cccc cccccccd
|
|
g_dfmt(0) gives 3 bytes: "1.3"
|
|
|
|
strtoId returns 33, consuming 3 bytes.
|
|
fI[0] = #3ff4cccc cccccccc = 1.2999999999999998
|
|
fI[1] = #3ff4cccc cccccccd = 1.3
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: -1.3
|
|
strtod consumes 4 bytes and returns 41 with f = -1.3 = #bff4cccc cccccccd
|
|
g_dfmt(0) gives 4 bytes: "-1.3"
|
|
|
|
strtoId returns 41, consuming 4 bytes.
|
|
fI[0] = #bff4cccc cccccccd = -1.3
|
|
fI[1] = #bff4cccc cccccccc = -1.2999999999999998
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.4
|
|
strtod consumes 3 bytes and returns 17 with f = 1.3999999999999999 = #3ff66666 66666666
|
|
g_dfmt(0) gives 3 bytes: "1.4"
|
|
|
|
strtoId returns 17, consuming 3 bytes.
|
|
fI[0] = #3ff66666 66666666 = 1.3999999999999999
|
|
fI[1] = #3ff66666 66666667 = 1.4000000000000001
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.4
|
|
strtod consumes 4 bytes and returns 25 with f = -1.3999999999999999 = #bff66666 66666666
|
|
g_dfmt(0) gives 4 bytes: "-1.4"
|
|
|
|
strtoId returns 25, consuming 4 bytes.
|
|
fI[0] = #bff66666 66666667 = -1.4000000000000001
|
|
fI[1] = #bff66666 66666666 = -1.3999999999999999
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.5
|
|
strtod consumes 3 bytes and returns 1 with f = 1.5 = #3ff80000 0
|
|
g_dfmt(0) gives 3 bytes: "1.5"
|
|
|
|
strtoId returns 1, consuming 3 bytes.
|
|
fI[0] == fI[1] == strtod
|
|
|
|
|
|
Input: -1.5
|
|
strtod consumes 4 bytes and returns 9 with f = -1.5 = #bff80000 0
|
|
g_dfmt(0) gives 4 bytes: "-1.5"
|
|
|
|
strtoId returns 9, consuming 4 bytes.
|
|
fI[0] == fI[1] == strtod
|
|
|
|
|
|
Input: 1.6
|
|
strtod consumes 3 bytes and returns 33 with f = 1.6000000000000001 = #3ff99999 9999999a
|
|
g_dfmt(0) gives 3 bytes: "1.6"
|
|
|
|
strtoId returns 33, consuming 3 bytes.
|
|
fI[0] = #3ff99999 99999999 = 1.5999999999999999
|
|
fI[1] = #3ff99999 9999999a = 1.6000000000000001
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: -1.6
|
|
strtod consumes 4 bytes and returns 41 with f = -1.6000000000000001 = #bff99999 9999999a
|
|
g_dfmt(0) gives 4 bytes: "-1.6"
|
|
|
|
strtoId returns 41, consuming 4 bytes.
|
|
fI[0] = #bff99999 9999999a = -1.6000000000000001
|
|
fI[1] = #bff99999 99999999 = -1.5999999999999999
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.7
|
|
strtod consumes 3 bytes and returns 17 with f = 1.7 = #3ffb3333 33333333
|
|
g_dfmt(0) gives 3 bytes: "1.7"
|
|
|
|
strtoId returns 17, consuming 3 bytes.
|
|
fI[0] = #3ffb3333 33333333 = 1.7
|
|
fI[1] = #3ffb3333 33333334 = 1.7000000000000002
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.7
|
|
strtod consumes 4 bytes and returns 25 with f = -1.7 = #bffb3333 33333333
|
|
g_dfmt(0) gives 4 bytes: "-1.7"
|
|
|
|
strtoId returns 25, consuming 4 bytes.
|
|
fI[0] = #bffb3333 33333334 = -1.7000000000000002
|
|
fI[1] = #bffb3333 33333333 = -1.7
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.8
|
|
strtod consumes 3 bytes and returns 33 with f = 1.8 = #3ffccccc cccccccd
|
|
g_dfmt(0) gives 3 bytes: "1.8"
|
|
|
|
strtoId returns 33, consuming 3 bytes.
|
|
fI[0] = #3ffccccc cccccccc = 1.7999999999999998
|
|
fI[1] = #3ffccccc cccccccd = 1.8
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: -1.8
|
|
strtod consumes 4 bytes and returns 41 with f = -1.8 = #bffccccc cccccccd
|
|
g_dfmt(0) gives 4 bytes: "-1.8"
|
|
|
|
strtoId returns 41, consuming 4 bytes.
|
|
fI[0] = #bffccccc cccccccd = -1.8
|
|
fI[1] = #bffccccc cccccccc = -1.7999999999999998
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.9
|
|
strtod consumes 3 bytes and returns 17 with f = 1.8999999999999999 = #3ffe6666 66666666
|
|
g_dfmt(0) gives 3 bytes: "1.9"
|
|
|
|
strtoId returns 17, consuming 3 bytes.
|
|
fI[0] = #3ffe6666 66666666 = 1.8999999999999999
|
|
fI[1] = #3ffe6666 66666667 = 1.9000000000000001
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.9
|
|
strtod consumes 4 bytes and returns 25 with f = -1.8999999999999999 = #bffe6666 66666666
|
|
g_dfmt(0) gives 4 bytes: "-1.9"
|
|
|
|
strtoId returns 25, consuming 4 bytes.
|
|
fI[0] = #bffe6666 66666667 = -1.9000000000000001
|
|
fI[1] = #bffe6666 66666666 = -1.8999999999999999
|
|
fI[1] == strtod
|
|
|
|
Rounding mode for strtor... changed from 1 (nearest) to 2 (toward +Infinity)
|
|
|
|
Input: 1.1
|
|
strtod consumes 3 bytes and returns 33 with f = 1.1000000000000001 = #3ff19999 9999999a
|
|
g_dfmt(0) gives 3 bytes: "1.1"
|
|
|
|
strtoId returns 33, consuming 3 bytes.
|
|
fI[0] = #3ff19999 99999999 = 1.0999999999999999
|
|
fI[1] = #3ff19999 9999999a = 1.1000000000000001
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: -1.1
|
|
strtod consumes 4 bytes and returns 25 with f = -1.0999999999999999 = #bff19999 99999999
|
|
g_dfmt(0) gives 19 bytes: "-1.0999999999999999"
|
|
|
|
strtoId returns 41, consuming 4 bytes.
|
|
fI[0] = #bff19999 9999999a = -1.1000000000000001
|
|
fI[1] = #bff19999 99999999 = -1.0999999999999999
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.2
|
|
strtod consumes 3 bytes and returns 33 with f = 1.2000000000000002 = #3ff33333 33333334
|
|
g_dfmt(0) gives 18 bytes: "1.2000000000000002"
|
|
|
|
strtoId returns 17, consuming 3 bytes.
|
|
fI[0] = #3ff33333 33333333 = 1.2
|
|
fI[1] = #3ff33333 33333334 = 1.2000000000000002
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: -1.2
|
|
strtod consumes 4 bytes and returns 25 with f = -1.2 = #bff33333 33333333
|
|
g_dfmt(0) gives 4 bytes: "-1.2"
|
|
|
|
strtoId returns 25, consuming 4 bytes.
|
|
fI[0] = #bff33333 33333334 = -1.2000000000000002
|
|
fI[1] = #bff33333 33333333 = -1.2
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.3
|
|
strtod consumes 3 bytes and returns 33 with f = 1.3 = #3ff4cccc cccccccd
|
|
g_dfmt(0) gives 3 bytes: "1.3"
|
|
|
|
strtoId returns 33, consuming 3 bytes.
|
|
fI[0] = #3ff4cccc cccccccc = 1.2999999999999998
|
|
fI[1] = #3ff4cccc cccccccd = 1.3
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: -1.3
|
|
strtod consumes 4 bytes and returns 25 with f = -1.2999999999999998 = #bff4cccc cccccccc
|
|
g_dfmt(0) gives 19 bytes: "-1.2999999999999998"
|
|
|
|
strtoId returns 41, consuming 4 bytes.
|
|
fI[0] = #bff4cccc cccccccd = -1.3
|
|
fI[1] = #bff4cccc cccccccc = -1.2999999999999998
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.4
|
|
strtod consumes 3 bytes and returns 33 with f = 1.4000000000000001 = #3ff66666 66666667
|
|
g_dfmt(0) gives 18 bytes: "1.4000000000000001"
|
|
|
|
strtoId returns 17, consuming 3 bytes.
|
|
fI[0] = #3ff66666 66666666 = 1.3999999999999999
|
|
fI[1] = #3ff66666 66666667 = 1.4000000000000001
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: -1.4
|
|
strtod consumes 4 bytes and returns 25 with f = -1.3999999999999999 = #bff66666 66666666
|
|
g_dfmt(0) gives 4 bytes: "-1.4"
|
|
|
|
strtoId returns 25, consuming 4 bytes.
|
|
fI[0] = #bff66666 66666667 = -1.4000000000000001
|
|
fI[1] = #bff66666 66666666 = -1.3999999999999999
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.5
|
|
strtod consumes 3 bytes and returns 1 with f = 1.5 = #3ff80000 0
|
|
g_dfmt(0) gives 3 bytes: "1.5"
|
|
|
|
strtoId returns 1, consuming 3 bytes.
|
|
fI[0] == fI[1] == strtod
|
|
|
|
|
|
Input: -1.5
|
|
strtod consumes 4 bytes and returns 9 with f = -1.5 = #bff80000 0
|
|
g_dfmt(0) gives 4 bytes: "-1.5"
|
|
|
|
strtoId returns 9, consuming 4 bytes.
|
|
fI[0] == fI[1] == strtod
|
|
|
|
|
|
Input: 1.6
|
|
strtod consumes 3 bytes and returns 33 with f = 1.6000000000000001 = #3ff99999 9999999a
|
|
g_dfmt(0) gives 3 bytes: "1.6"
|
|
|
|
strtoId returns 33, consuming 3 bytes.
|
|
fI[0] = #3ff99999 99999999 = 1.5999999999999999
|
|
fI[1] = #3ff99999 9999999a = 1.6000000000000001
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: -1.6
|
|
strtod consumes 4 bytes and returns 25 with f = -1.5999999999999999 = #bff99999 99999999
|
|
g_dfmt(0) gives 19 bytes: "-1.5999999999999999"
|
|
|
|
strtoId returns 41, consuming 4 bytes.
|
|
fI[0] = #bff99999 9999999a = -1.6000000000000001
|
|
fI[1] = #bff99999 99999999 = -1.5999999999999999
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.7
|
|
strtod consumes 3 bytes and returns 33 with f = 1.7000000000000002 = #3ffb3333 33333334
|
|
g_dfmt(0) gives 18 bytes: "1.7000000000000002"
|
|
|
|
strtoId returns 17, consuming 3 bytes.
|
|
fI[0] = #3ffb3333 33333333 = 1.7
|
|
fI[1] = #3ffb3333 33333334 = 1.7000000000000002
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: -1.7
|
|
strtod consumes 4 bytes and returns 25 with f = -1.7 = #bffb3333 33333333
|
|
g_dfmt(0) gives 4 bytes: "-1.7"
|
|
|
|
strtoId returns 25, consuming 4 bytes.
|
|
fI[0] = #bffb3333 33333334 = -1.7000000000000002
|
|
fI[1] = #bffb3333 33333333 = -1.7
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.8
|
|
strtod consumes 3 bytes and returns 33 with f = 1.8 = #3ffccccc cccccccd
|
|
g_dfmt(0) gives 3 bytes: "1.8"
|
|
|
|
strtoId returns 33, consuming 3 bytes.
|
|
fI[0] = #3ffccccc cccccccc = 1.7999999999999998
|
|
fI[1] = #3ffccccc cccccccd = 1.8
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: -1.8
|
|
strtod consumes 4 bytes and returns 25 with f = -1.7999999999999998 = #bffccccc cccccccc
|
|
g_dfmt(0) gives 19 bytes: "-1.7999999999999998"
|
|
|
|
strtoId returns 41, consuming 4 bytes.
|
|
fI[0] = #bffccccc cccccccd = -1.8
|
|
fI[1] = #bffccccc cccccccc = -1.7999999999999998
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: 1.9
|
|
strtod consumes 3 bytes and returns 33 with f = 1.9000000000000001 = #3ffe6666 66666667
|
|
g_dfmt(0) gives 18 bytes: "1.9000000000000001"
|
|
|
|
strtoId returns 17, consuming 3 bytes.
|
|
fI[0] = #3ffe6666 66666666 = 1.8999999999999999
|
|
fI[1] = #3ffe6666 66666667 = 1.9000000000000001
|
|
fI[1] == strtod
|
|
|
|
|
|
Input: -1.9
|
|
strtod consumes 4 bytes and returns 25 with f = -1.8999999999999999 = #bffe6666 66666666
|
|
g_dfmt(0) gives 4 bytes: "-1.9"
|
|
|
|
strtoId returns 25, consuming 4 bytes.
|
|
fI[0] = #bffe6666 66666667 = -1.9000000000000001
|
|
fI[1] = #bffe6666 66666666 = -1.8999999999999999
|
|
fI[1] == strtod
|
|
|
|
Rounding mode for strtor... changed from 2 (toward +Infinity) to 3 (toward -Infinity)
|
|
|
|
Input: 1.1
|
|
strtod consumes 3 bytes and returns 17 with f = 1.0999999999999999 = #3ff19999 99999999
|
|
g_dfmt(0) gives 18 bytes: "1.0999999999999999"
|
|
|
|
strtoId returns 33, consuming 3 bytes.
|
|
fI[0] = #3ff19999 99999999 = 1.0999999999999999
|
|
fI[1] = #3ff19999 9999999a = 1.1000000000000001
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.1
|
|
strtod consumes 4 bytes and returns 41 with f = -1.1000000000000001 = #bff19999 9999999a
|
|
g_dfmt(0) gives 4 bytes: "-1.1"
|
|
|
|
strtoId returns 41, consuming 4 bytes.
|
|
fI[0] = #bff19999 9999999a = -1.1000000000000001
|
|
fI[1] = #bff19999 99999999 = -1.0999999999999999
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.2
|
|
strtod consumes 3 bytes and returns 17 with f = 1.2 = #3ff33333 33333333
|
|
g_dfmt(0) gives 3 bytes: "1.2"
|
|
|
|
strtoId returns 17, consuming 3 bytes.
|
|
fI[0] = #3ff33333 33333333 = 1.2
|
|
fI[1] = #3ff33333 33333334 = 1.2000000000000002
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.2
|
|
strtod consumes 4 bytes and returns 41 with f = -1.2000000000000002 = #bff33333 33333334
|
|
g_dfmt(0) gives 19 bytes: "-1.2000000000000002"
|
|
|
|
strtoId returns 25, consuming 4 bytes.
|
|
fI[0] = #bff33333 33333334 = -1.2000000000000002
|
|
fI[1] = #bff33333 33333333 = -1.2
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.3
|
|
strtod consumes 3 bytes and returns 17 with f = 1.2999999999999998 = #3ff4cccc cccccccc
|
|
g_dfmt(0) gives 18 bytes: "1.2999999999999998"
|
|
|
|
strtoId returns 33, consuming 3 bytes.
|
|
fI[0] = #3ff4cccc cccccccc = 1.2999999999999998
|
|
fI[1] = #3ff4cccc cccccccd = 1.3
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.3
|
|
strtod consumes 4 bytes and returns 41 with f = -1.3 = #bff4cccc cccccccd
|
|
g_dfmt(0) gives 4 bytes: "-1.3"
|
|
|
|
strtoId returns 41, consuming 4 bytes.
|
|
fI[0] = #bff4cccc cccccccd = -1.3
|
|
fI[1] = #bff4cccc cccccccc = -1.2999999999999998
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.4
|
|
strtod consumes 3 bytes and returns 17 with f = 1.3999999999999999 = #3ff66666 66666666
|
|
g_dfmt(0) gives 3 bytes: "1.4"
|
|
|
|
strtoId returns 17, consuming 3 bytes.
|
|
fI[0] = #3ff66666 66666666 = 1.3999999999999999
|
|
fI[1] = #3ff66666 66666667 = 1.4000000000000001
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.4
|
|
strtod consumes 4 bytes and returns 41 with f = -1.4000000000000001 = #bff66666 66666667
|
|
g_dfmt(0) gives 19 bytes: "-1.4000000000000001"
|
|
|
|
strtoId returns 25, consuming 4 bytes.
|
|
fI[0] = #bff66666 66666667 = -1.4000000000000001
|
|
fI[1] = #bff66666 66666666 = -1.3999999999999999
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.5
|
|
strtod consumes 3 bytes and returns 1 with f = 1.5 = #3ff80000 0
|
|
g_dfmt(0) gives 3 bytes: "1.5"
|
|
|
|
strtoId returns 1, consuming 3 bytes.
|
|
fI[0] == fI[1] == strtod
|
|
|
|
|
|
Input: -1.5
|
|
strtod consumes 4 bytes and returns 9 with f = -1.5 = #bff80000 0
|
|
g_dfmt(0) gives 4 bytes: "-1.5"
|
|
|
|
strtoId returns 9, consuming 4 bytes.
|
|
fI[0] == fI[1] == strtod
|
|
|
|
|
|
Input: 1.6
|
|
strtod consumes 3 bytes and returns 17 with f = 1.5999999999999999 = #3ff99999 99999999
|
|
g_dfmt(0) gives 18 bytes: "1.5999999999999999"
|
|
|
|
strtoId returns 33, consuming 3 bytes.
|
|
fI[0] = #3ff99999 99999999 = 1.5999999999999999
|
|
fI[1] = #3ff99999 9999999a = 1.6000000000000001
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.6
|
|
strtod consumes 4 bytes and returns 41 with f = -1.6000000000000001 = #bff99999 9999999a
|
|
g_dfmt(0) gives 4 bytes: "-1.6"
|
|
|
|
strtoId returns 41, consuming 4 bytes.
|
|
fI[0] = #bff99999 9999999a = -1.6000000000000001
|
|
fI[1] = #bff99999 99999999 = -1.5999999999999999
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.7
|
|
strtod consumes 3 bytes and returns 17 with f = 1.7 = #3ffb3333 33333333
|
|
g_dfmt(0) gives 3 bytes: "1.7"
|
|
|
|
strtoId returns 17, consuming 3 bytes.
|
|
fI[0] = #3ffb3333 33333333 = 1.7
|
|
fI[1] = #3ffb3333 33333334 = 1.7000000000000002
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.7
|
|
strtod consumes 4 bytes and returns 41 with f = -1.7000000000000002 = #bffb3333 33333334
|
|
g_dfmt(0) gives 19 bytes: "-1.7000000000000002"
|
|
|
|
strtoId returns 25, consuming 4 bytes.
|
|
fI[0] = #bffb3333 33333334 = -1.7000000000000002
|
|
fI[1] = #bffb3333 33333333 = -1.7
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.8
|
|
strtod consumes 3 bytes and returns 17 with f = 1.7999999999999998 = #3ffccccc cccccccc
|
|
g_dfmt(0) gives 18 bytes: "1.7999999999999998"
|
|
|
|
strtoId returns 33, consuming 3 bytes.
|
|
fI[0] = #3ffccccc cccccccc = 1.7999999999999998
|
|
fI[1] = #3ffccccc cccccccd = 1.8
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.8
|
|
strtod consumes 4 bytes and returns 41 with f = -1.8 = #bffccccc cccccccd
|
|
g_dfmt(0) gives 4 bytes: "-1.8"
|
|
|
|
strtoId returns 41, consuming 4 bytes.
|
|
fI[0] = #bffccccc cccccccd = -1.8
|
|
fI[1] = #bffccccc cccccccc = -1.7999999999999998
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: 1.9
|
|
strtod consumes 3 bytes and returns 17 with f = 1.8999999999999999 = #3ffe6666 66666666
|
|
g_dfmt(0) gives 3 bytes: "1.9"
|
|
|
|
strtoId returns 17, consuming 3 bytes.
|
|
fI[0] = #3ffe6666 66666666 = 1.8999999999999999
|
|
fI[1] = #3ffe6666 66666667 = 1.9000000000000001
|
|
fI[0] == strtod
|
|
|
|
|
|
Input: -1.9
|
|
strtod consumes 4 bytes and returns 41 with f = -1.9000000000000001 = #bffe6666 66666667
|
|
g_dfmt(0) gives 19 bytes: "-1.9000000000000001"
|
|
|
|
strtoId returns 25, consuming 4 bytes.
|
|
fI[0] = #bffe6666 66666667 = -1.9000000000000001
|
|
fI[1] = #bffe6666 66666666 = -1.8999999999999999
|
|
fI[0] == strtod
|
|
|