mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-19 05:39:18 +02:00
sprintf precision ranges from 15 to 17
This commit is contained in:
parent
c5effc536f
commit
e4eadba355
2 changed files with 12 additions and 9 deletions
9
sexp.c
9
sexp.c
|
@ -1913,9 +1913,12 @@ sexp sexp_write_one (sexp ctx, sexp obj, sexp out) {
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
i = snprintf(numbuf, NUMBUF_LEN, "%.16lg", f);
|
i = snprintf(numbuf, NUMBUF_LEN, "%.15lg", f);
|
||||||
if (i >= 16 && sscanf(numbuf, "%lg", &ftmp) == 1 && ftmp != f) {
|
if (i >= 15 && sscanf(numbuf, "%lg", &ftmp) == 1 && ftmp != f) {
|
||||||
i = snprintf(numbuf, NUMBUF_LEN, "%.17lg", f);
|
i = snprintf(numbuf, NUMBUF_LEN, "%.16lg", f);
|
||||||
|
if (i >= 16 && sscanf(numbuf, "%lg", &ftmp) == 1 && ftmp != f) {
|
||||||
|
i = snprintf(numbuf, NUMBUF_LEN, "%.17lg", f);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!strchr(numbuf, '.') && !strchr(numbuf, 'e')) {
|
if (!strchr(numbuf, '.') && !strchr(numbuf, 'e')) {
|
||||||
numbuf[i++] = '.'; numbuf[i++] = '0'; numbuf[i++] = '\0';
|
numbuf[i++] = '.'; numbuf[i++] = '0'; numbuf[i++] = '\0';
|
||||||
|
|
|
@ -2366,13 +2366,13 @@
|
||||||
(eqv? n (string->number (car ls)))))))))
|
(eqv? n (string->number (car ls)))))))))
|
||||||
|
|
||||||
(test-precision "-1.7976931348623157e+308" "-inf.0")
|
(test-precision "-1.7976931348623157e+308" "-inf.0")
|
||||||
(test-precision "4.940656458412465e-324" "5.0e-324" "0.0")
|
(test-precision "4.940656458412465e-324" "4.94065645841247e-324" "5.0e-324" "0.0")
|
||||||
(test-precision "9.881312916824931e-324" "1.0e-323" "0.0")
|
(test-precision "9.881312916824931e-324" "9.88131291682493e-324" "1.0e-323" "0.0")
|
||||||
(test-precision "1.48219693752374e-323" "1.5e-323" "0.0")
|
(test-precision "1.48219693752374e-323" "1.5e-323" "0.0")
|
||||||
(test-precision "1.976262583364986e-323" "2.0e-323" "0.0")
|
(test-precision "1.976262583364986e-323" "1.97626258336499e-323" "2.0e-323" "0.0")
|
||||||
(test-precision "2.470328229206233e-323" "2.5e-323" "0.0")
|
(test-precision "2.470328229206233e-323" "2.47032822920623e-323" "2.5e-323" "0.0")
|
||||||
(test-precision "2.420921664622108e-322" "2.4e-322" "0.0")
|
(test-precision "2.420921664622108e-322" "2.42092166462211e-322" "2.4e-322" "0.0")
|
||||||
(test-precision "2.420921664622108e-320" "2.421e-320" "0.0")
|
(test-precision "2.420921664622108e-320" "2.42092166462211e-320" "2.421e-320" "0.0")
|
||||||
(test-precision "1.4489974452386991" "1.4489975")
|
(test-precision "1.4489974452386991" "1.4489975")
|
||||||
(test-precision "0.14285714285714282" "0.14285714285714288" "0.14285715")
|
(test-precision "0.14285714285714282" "0.14285714285714288" "0.14285715")
|
||||||
(test-precision "1.7976931348623157e+308" "+inf.0")
|
(test-precision "1.7976931348623157e+308" "+inf.0")
|
||||||
|
|
Loading…
Add table
Reference in a new issue